更新协议,完成可用性升级,更换协议

This commit is contained in:
EillesWan 2024-08-08 18:47:14 +08:00
parent 4791dcd63d
commit 319be8bbc0
11 changed files with 284 additions and 138 deletions

View File

@ -1,9 +1,137 @@
<h1 align="center"><b><i>在 Gitee Push #4791dcd(不含)之后本仓库使用</i>《汉钰律许可协议 第一版》<i>开源</i></b></h1>
# 汉钰律许可协议
**总第一版 · 二〇二四年七月七日编**
## 一、重要须知
1. 为保护采用本协议的作品在开源过程中,其著作权人所应有的权益,根据**中华人民共和国著作权法和相关法律法规**,制定本协议。
2. 本协议履行过程中,请注意本协议中**免除或限制**民事主体**责任或权利**的条款、法律适用和争议解决条款(尤其是加有特殊标记的条款),这些条款应在中国法律所允许的范围内最大程度地适用。
3. 若本协议所涉及的自然人**未满 18 周岁**,该自然人应在监护人的陪同下阅读本协议及有关本协议的条款内容,并在取得其监护人同意后开始或继续应用本协议所授权的行为。
4. 由于互联网服务、互联网内容的特殊性,若本协议以电子协议形式分发并签订,其依然有效。您一旦开始对本协议所授权之作品进行本协议所授权的行为,即视为您已经阅读、理解并同意并已经接受本协议的全部条款。
5. 本协议的订立、履行、解释及争议的解决均**适用中华人民共和国法律并排除其他一切冲突法的适用**。_本协议订立于许可证最初的颁发者的地址。若其为自然人则订立于该自然人户籍所在地若为法人或非法人组织则订立于其注册地_。本协议的订立各方应友好协商解决于协议所规定之行为的履行相关的争议如协商不成任何一方均可向合同签订地有管辖权的人民法院提起诉讼。
6. 本协议的原本仅为现代汉语,书写于简体中文。若存在其他语言的翻译或其他同等语言但非简体中文文本的版本,应当无法律效力。
## 二、术语定义
1. “**许可证**”、“**协议**”(后文称“本协议”)是指根据本文档中所列举的全部术语、定义、条款、限制等文本,是本合同的简称称谓。本合同全称是“汉钰律许可协议”。
2. “**协议颁发者**”(后文称“颁发者”)是将条款或协议应用于其拥有著作财产权的作品的民事主体,或由其指定从而拥有颁发者身份的民事主体。
3. “**源**”形式是指对包括但不限于 软件、硬件、文档、配置项 等种类的作品进行修改、编辑的首选形式;若不存在首选形式,则初次编辑该作品所需的形式即为源形式。
4. “**目标**”形式是指对源形式进行机械转换、翻译、打印、制造、加工等同类型活动后形成的结果形式,包括但不限于源代码编译后的目标软件、生成的文件、转换出的媒体、制造出的机械、打印出的实体文本、加工后的零件。
5. “**采用本协议的作品**”(后文称“此作品”)是指经颁发者授权而使用本协议进行授权的任何作品,该作品应在自然人可见处明确附加一个自然人可读的版权通知(可以参考文末附录中提供的示例);若在一个可分割的作品中,部分地采用本协议进行授权,则该部分应当视为一个独立的采用本协议的作品,该作品应当在自然人可见处明确附加一个自然人可读的范围限定和版权通知(同样可以参考文末附录中提供的示例)。
6. “**贡献**”是指对作品进行的,意在提交给此作品颁发者以让著作权人包含在其作品中的任何修订或补充,该修订或补充同样属于一种作品。依据此定义,“提交”一词表示经由此作品颁发者所指定的形式,将其所进行的修改发送给此作品颁发者。该形式应当包括在此作品颁发者指定的平台内发送易于编辑的修改信息、在此作品颁发者指定的电子邮箱中发送易于编辑的修改信息、在此作品颁发者指定的源码控制系统或发布跟踪系统上提交的易于编辑的修改信息,但由著作权人以明显标注或指定为“非贡献”的活动除外。颁发者自己对作品进行的修改同样视作对作品的贡献。
7. “**贡献者**”是指此作品颁发者接受的贡献的提交者,或包含在作品的贡献清单中的民事主体。贡献者在提交贡献并经此作品颁发者通过且该贡献已经被应用于此作品中后,该贡献者应当视为此作品的著作权人之一,但不应视为此作品非其贡献的部分的著作权人。一个作品的颁发者同样属于其贡献者。**请注意**,针对贡献者提交的贡献,该贡献者应被视为该贡献的协议颁发者,但不应视作本作品的颁发者。
8. “**用户**”、“**使用者**”是指行使本协议所授权之行为的民事主体。据此,贡献者亦属于用户。
9. “**商业性使用**”、“**商用**”是指任何以谋取利益为目的的使用,包括但不限于以贩卖、出租的形式对作品进行使用;但若将该牟利活动明确指示为“捐赠”,且在牟利者进行本协议所授权的活动时不以捐赠数额为标准,则此种的获取利益的“捐赠”行为不属于商业性使用。
## 三、权利授予
1. 任何由颁发者所进行的特殊声明、特别注意等此类内容,应当在法律效力上高于本协议的条款或声明;这些声明若与本协议冲突,本协议的该冲突部分无效;本协议与这些声明共同构成颁发者与用户之间的合同。
2. 此作品的贡献者享有其贡献的完整著作权。
3. 此作品的贡献者将自己的贡献的全部著作财产权,免费、公开、不可撤销、无限期、非专有地授予此作品的全部著作权人,并准许其在全世界范围内使用上述权利;若无明确的标识,贡献者允许此作品的颁发者对其贡献进行免费、公开、不可撤销、无限期、非专有、世界范围内的商业性使用。
4. 此作品的著作权人及贡献者授予用户**免费、公开、不可撤销、非专有、非商用**地以任意形式**复制、发行、展览、表演、放映、广播、信息网络传播、摄制、改编、翻译、汇编、二次授权**的权利,准许其在此作品颁发者所指定的区域与时间内行使上述权利;若此作品颁发者未特别指定的,则视作在全世界范围内无限期地授权;若此作品颁发者特别指定在特定情况下可以商用,则应当按照其所指定的条件进行商业性使用,商用的过程中,应当明确标识此作品的著作权人。
5. 一旦此作品有任意由非贡献形式而产生的更改,更改的部分将不视为此作品的一部分,除非该部分不可离开此作品单独存在;若该部分必须依赖此作品而不可与此作品分离从而单独存在,则更改后的作品不视作此作品,在这种情况下,除非此更改后的作品已获得此作品颁发者的特殊许可、或更改者即为此作品颁发者本人,否则对该作品进行的任何活动都应当遵守本协议。
6. 经贡献而产生的对此作品的更改,属于此作品的一部分;在此情况下,更改后的作品,依旧视作此作品。
7. 依据本款的第 4 条,若用户在本协议的授权下,将此作品授予他人进行任何形式的活动(即“二次授权”、“二次分发”),则应确保其使用的协议或授权内容,与本协议的条款不冲突;当存在与本协议条款的冲突时,则该冲突内容无效,被授权的第三方应依照本协议的条款进行活动;除非该用户获得了此作品颁发者的特殊许可、或该用户即为此作品颁发者本人。
8. 依据本款的第 5 条,若由非贡献形式而产生更改的部分是可分割而不需依赖此作品即可单独存在的,若该部分明确注明不使用本协议进行授权或明确声明了其他授权条款,则该部分不视作采用本协议;但未更改的部分仍应视作原此作品的一部分,需要采用本协议进行授权,除非此更改后的作品已获得此作品颁发者的特殊许可、或更改者即为此作品颁发者本人。
9. 若此作品或所提交的贡献包含其著作权人的专利,则该专利所有人即此作品的著作权人应准许此作品全体著作权人**免费、公开、不可撤销、非专有、无版权费的专利许可**,以便贡献者对作品进行本协议所授权进行的活动。
10. 上述专利许可的授予,仅适用于在所提交的贡献中,可由专利所有者授予的,且在对此作品进行本协议所授权的活动中,必须使用的专利。
11. 如果用户对任何民事主体,因其在进行本协议所授权进行的活动中侵犯该用户的专利而提起诉讼,那么根据本协议授予该用户的所有关于此作品的任何其他专利许可将在提起上述诉讼之日起终止。
12. 如果本作品作为用户的其他作品的不可分割的一部分进行任何民事活动,本协议依旧对本作品(即该用户的其他作品的一部分)生效;若本作品完全融入该用户的其他作品之中而不可独立存在,则该用户需要保证其作品存在与本协议冲突的条款;除非该作品已获得此作品颁发者的特殊许可、或该用户即为此作品颁发者本人。
## 四、使用条件
在对此作品进行本协议所授权的民事活动中,应当同时满足以下条款:
1. 用户必须为此作品的任何其他接收者提供本协议的副本,在不得已无法提供副本的情况下,也应明确指示其他接收者可查阅本协议的位置。
2. 用户必须在修改后的作品中附带明显的通知,声明用户已更改文件,并注明更改位置。
3. 若用户二次分发此作品,可以选择向此作品的接收者提供无偿或有偿的担保维修、支持服务或其他责任、义务。但是,该用户只可以其自己的名义提供上述内容,不得以任何其他贡献者的名义。且该用户必须明确表明任何此类责任或义务是由其个人独立提供,且其同意并应当承担赔偿此作品的全体贡献者因其个人承担上述责任义务而产生的任何赔偿责任。
4. 用户不得删除或更改此作品中包含的任何许可声明(包括版权声明,专利声明,免责声明,或赔偿责任限制),除非该更改是对已知事实错误的修补、或其已获得此作品颁发者的特殊许可、或更改者即为此作品颁发者本人。
5. 若此作品将权益的声明通知作为一部分,那么由用户分发的任何版本的作品中须至少在下列三处之一包含该声明通知的自然人可读副本:
- 该作品的权益声明通知中
- 在源形式的文件中(当且仅当该作品开放源代码)
- 在惯例中作为第三方通知出现之处(当且仅当该作品会产生画面,且该画面可被自然人详细观察)
该通知的内容仅供信息提供,不应对许可证进行任何文字上的修改。用户可在其分发的作品中,在不构成修改本协议的前提下,在作品自身的声明通知或属性描述后或作为附录添加。
6. 依据本款第 3 条,若用户二次分发此作品时,选择向作品的接收者提供收费的担保服务,则必须明确告知该接收者本协议全部内容与此作品原出处,并确保其知悉上述内容;但若用户在二次分发此作品是,不选择提供任何服务,则该用户不允许向作品的接收者收取任何费用,除非该用户获得了此作品颁发者的特殊许可、或该用户即为此作品颁发者本人。
## 五、提交贡献
除非贡献者明确声明,在本作品中由该贡献者向颁发者的提供的提交,必须符合本协议的条款,并与本协议的条款不存在冲突;除非此贡献中与本协议冲突的附加条款已获得颁发者的特殊许可、或贡献者即为此作品颁发者本人。
## 六、商标相关
本协议并未授予用户,将颁发者的商标、专属标记或特定产品名称,用于合理的或惯例性的描述或此类声明之外其他任何位置的权利。
## 七、免责声明
1. 若非因法律要求或经过了特殊准许,此作品在根据本协议“原样”提供的基础上,**不予提供任何形式的担保、任何明示、任何暗示或类似承诺**,此类包括但不限于担保此作品毫无缺陷、担保此作品适于贩卖、担保此作品适于特定目的、担保使用此作品绝不侵权。用户将自行承担因此作品的质量或性能问题而产生的全部风险。若此作品在任何方面欠妥,将由用户(而非任何贡献者、而非任何颁发者)承担所有必要的服务、维修或除错的任何成本。本免责声明本许可的重要组成部分。当且仅当遵守本免责声明时,本协议的其他条款中对本作品的使用授权方可生效。
2. 无论是因何种原因,如果不是在法律规定的特殊情况(如,确为贡献者的故意或重大过失)下或者经过了特殊准许,即使贡献者事先已知发生损害的可能,在使用本作品时,用户产生的任何直接、间接、特殊、偶然或必然造成的损失(包括但不限于商誉损失、工作延误、计算机系统故障等),**均不由任一贡献者承担**。
**以上是本许可协议的全部条款**
---
附录
**如何在自己的作品中应用 汉钰律许可协议**
若要在自己源形式的作品应用本协议,请在其中附加下面的通知模板,并将六角括号“〔〕”中的字段替换成自身的实际信息来替换(不包括括号本身)。这些文本必须以对应文件格式适当的注释句法包含在其中,可以是实体的纸质文档、也可以是网络公告或者计算机文件;或者脱离该源之外,另起一个新的文件,使之指向要应用本协议的那个作品。同时也建议将作品名或类别名以及目的说明之类的声明囊括在同一个可被打印的页面上作为版权通知的整体,这样更加容易的区分出第三方内容。
若需要在自己以目标形式存在的作品中应用本协议,同样需要附加下面的通知模板并更改六角括号中的字样。但是,这些文本可以是位于作品的标签上、位于作品的用户可见且能被自然人详细观察的画面之中、或者按照惯例中许可协议应该出现的位置;同时,这些文本的所处位置应当能够明确指示到本协议应用的那个作品。另外,建议将作品名或类别名以及目的说明之类的声明囊括在同一个可被打印的位置上作为版权通知的整体,这样更加容易的区分出第三方内容。
**通知模板**
```
版权所有 © 〔年份〕 〔著作权人〕
〔或者:版权所有 (C) 〔年份〕 〔著作权人〕〕
〔该作品〕根据 第一版 汉钰律许可协议(“本协议”)授权。
任何人皆可从以下地址获得本协议副本:〔本协议副本所在地址〕。
若非因法律要求或经过了特殊准许,此作品在根据本协议“原样”提供的基础上,不予提供任何形式的担保、任何明示、任何暗示或类似承诺。也就是说,用户将自行承担因此作品的质量或性能问题而产生的全部风险。
详细的准许和限制条款请见原协议文本。
```
<h1 align="center"><b><i>以下是旧版本Gitee Push #4791dcd(含)之前)的协议声明</i></b></h1>
**注意,以下条款或版权声明应当且必须是高于此仓库中任何其他声明的**
1. 伶伦的全部开发者享有其完整版权,其开发者可以在任一时刻终止以后伶伦源代码开放,若经由其开发者授予特殊权利,则授权对象可以将源代码进行特定的被特殊授权的操作
2. 伶伦或(及)其代码允许在 Apache2.0 协议的条款与说明下进行非商业使用
3. 除部分代码特殊声明外,伶伦允许对其或(及)其代码进行商业化使用,但是需要经过伶伦主要开发者(诸葛亮与八卦阵、金羿)的一致授权,同时,授权对象在商业化授权的使用过程中必须依照 Apache2.0 协议的条款与说明
4. 若存在对于伶伦包含的部分代码的特殊开源声明,则此部分代码依照其特定的开源方式授权,但若此部分代码经由此部分代码的主要开发者一致特殊授权后商用,则授权对象在商用时依照此部分的开发者所准许的方式(或条款)进行商用,或默认依照 Apache2.0 协议进行商业化使用
4. 若存在对于伶伦包含的部分代码的特殊开源声明,则此部分代码依照其特定的开源方式授权,但若此部分代码经由此部分代码的主要开发者一致特殊授权后商用,则授权对象在商用时依照此部分的开发者所准许的方式(或条款)进行商用,在开发者未明确指定商用授权方式但已经许可进行商用时,则依照 Apache2.0 协议进行商业化使用
5. Apache2.0 协议的英文原文副本可见下文
> The English Translation of the TERMS AND CONDITIONS above is listed below

View File

@ -7,24 +7,28 @@
伶伦转换器 命令行
Linglun Converter CLI
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
伶伦转换器命令行版本本项目的协议颁发者为 金羿
The Licensor of _Linglun Converter CLI_("this project") is Eilles Wan.
本项目根据 第一版 汉钰律许可协议本协议授权
任何人皆可从以下地址获得本协议副本https://gitee.com/EillesWan/YulvLicenses
若非因法律要求或经过了特殊准许此作品在根据本协议原样提供的基础上不予提供任何形式的担保任何明示任何暗示或类似承诺也就是说用户将自行承担因此作品的质量或性能问题而产生的全部风险
详细的准许和限制条款请见原协议文本
"""
__version__ = "0.0.7"
__version__ = "0.0.8"
import datetime
import os
import random
# import sys
import Musicreater
from Musicreater.constants import DEFAULT_PROGRESSBAR_STYLE
from Musicreater.plugin import ConvertConfig
from Musicreater import DEFAULT_PROGRESSBAR_STYLE
from Musicreater.plugin.addonpack import (
to_addon_pack_in_delay,
to_addon_pack_in_repeater,
@ -34,10 +38,11 @@ from Musicreater.plugin.addonpack import (
from Musicreater.plugin.mcstructfile import (
to_mcstructure_file_in_delay,
to_mcstructure_file_in_repeater,
# to_mcstructure_file_in_score,
to_mcstructure_file_in_score,
)
from Musicreater.plugin.bdxfile import to_BDX_file_in_delay, to_BDX_file_in_score
from utils.io import logger, int_str, prt, ipt, myWords, isin, bool_str, float_str
from utils.io import logger, int_str, prt, ipt, isin, bool_str, float_str
from utils.yanlun import yanlun_texts, solar_date
# from Musicreater.plugin.mcstructure import commands_to_structure, commands_to_redstone_delay_structure
@ -76,33 +81,25 @@ logger.console.rule(
style="#26E2FF",
)
nowYang = datetime.datetime.now()
if nowYang.month == 8 and nowYang.day == 6:
if solar_date == (4, 3):
# 诸葛八卦生日
logger.console.print(
"[#7DB5F0 on #121110]今天可不是催更的日子!\n诸葛亮与八卦阵{}岁生日快乐!".format(
nowYang.year - 2008
),
style="#7DB5F0 on #121110",
justify="center",
)
elif nowYang.month == 4 and nowYang.day == 3:
style_ = "#7DB5F0 on #121110"
elif solar_date == (8, 6):
# 金羿生日快乐
logger.console.print(
"[#0089F2 on #F0F2F4]今天就不要催更啦!\n金羿{}岁生日快乐!".format(
nowYang.year - 2006
),
style="#0089F2 on #F0F2F4",
justify="center",
)
style_ = "#0089F2 on #F0F2F4"
elif solar_date == (8, 16):
# 旧梦生日快乐
style_ = "#F0F2F4 on #0089F2" # TODO
else:
# 显示箴言部分
logger.console.print(
"[#121110 on #F0F2F4]{}".format(random.choice(myWords)),
style="#121110 on #F0F2F4",
justify="center",
)
style_ = "#121110 on #F0F2F4"
# 显示箴言部分
logger.console.print(
"[{}]{}".format(style_, random.choice(yanlun_texts)),
style=style_,
justify="center",
)
del style_
# prt(f"{_('LangChd')}{_(':')}{_(currentLang)}")
@ -171,7 +168,7 @@ while True:
def is_in_bdx_mcpack(sth: str):
return isin(
sth,
sth.lower(),
{
1: ("bdx", "1", "币帝查", "币帝·艾克斯", "", ""),
0: ("mcpack", "0", "唉姆西·派克", "", ""),
@ -180,19 +177,25 @@ def is_in_bdx_mcpack(sth: str):
)
def is_in_player(sth: str, in_ok: tuple = (0,1,2)):
def is_in_player(sth: str, in_ok: tuple = (0, 1, 2)):
return isin(
sth,
sth.lower(),
dict(
[
(i, v)
for i, v in [
(0,
("delay", "0", "延迟", "帝蕾"),),
(1,
("score", "1", "计分板", "积分", "积分板", "计分", "斯阔尔"),),
(2,
("repeater", "2", "中继器", "瑞皮特"),),
(
0,
("delay", "0", "延迟", "帝蕾"),
),
(
1,
("score", "1", "计分板", "积分", "积分板", "计分", "斯阔尔"),
),
(
2,
("repeater", "2", "中继器", "瑞皮特"),
),
]
if i in in_ok
]
@ -201,32 +204,26 @@ def is_in_player(sth: str, in_ok: tuple = (0,1,2)):
output_file_format = format_ipt(
"输出文件类型 (mcpack/0|bdx/1)",
"输出文件类型 (mcpack/0|bdx/1|mcstructure/2)",
is_in_bdx_mcpack,
"输入内容有误,请重新输入。",
)[1]
if output_file_format == 0:
if output_file_format == 1:
player_format = format_ipt(
"播放器类型 (延迟/0|计分板/1|中继器/2)",
is_in_player,
"输入内容有误,请重新输入。",
)[1]
elif output_file_format == 1:
player_format = format_ipt(
"播放器类型 (延迟/0|计分板/1)",
"播放器类型 (延迟/0|计分板/1)",
lambda a: is_in_player(a, (0, 1)),
"输入内容有误,请重新输入。",
)[1]
else:
player_format = format_ipt(
"播放器类型 (延迟/0|中继器/2)",
lambda a: is_in_player(a, (0, 2)),
"播放器类型 (延迟/0|计分板/1|中继器/2)",
is_in_player,
"输入内容有误,请重新输入。",
)[1]
old_exe_enabled = not format_ipt(
"启用新版代执行指令 (否/0|是/1)",
old_exe_enabled = format_ipt(
"启用旧版代行指令 (否/0|是/1)",
bool_str,
"输入内容格式错误,应为 是/1/真/t/y 或 否/0/假/f/n",
)[1]
@ -242,17 +239,21 @@ else:
prompts = []
# 提示语 检测函数 错误提示语
for args in [
(
"音量大小 (0,1]",
float_str,
),
(
"速度倍率 (0,+∞)",
float_str,
),
(
"自动生成进度条 (否/0|是/1)",
bool_str,
"最小音量 (0,1]",
float_str,
),
(
(
"自动生成进度条 (否/0|是/1)",
bool_str,
)
if output_file_format != 2
else ()
),
(
(
@ -281,7 +282,7 @@ else:
if output_file_format == 1
else (
(
"结构延展方向x+|z+|x-|z-",
"结构延展方向 (x+|z+|x-|z-)",
lambda a: isin(
a,
{
@ -298,16 +299,16 @@ else:
),
(
(
"结构生成最大高度 (0,+∞)",
int_str,
"基础底部方块 (例concrete)",
str,
)
if player_format == 0
if (player_format == 2 and output_file_format == 2)
else (
(
"基础空白方块concrete",
str,
"结构生成最大高度 (0,+∞)",
int_str,
)
if (player_format == 2 and output_file_format == 2)
if player_format == 0 or output_file_format != 0
else ()
)
),
@ -319,22 +320,26 @@ else:
)[1]
)
if prompts[2]:
if output_file_format != 2 and prompts[2]:
style = DEFAULT_PROGRESSBAR_STYLE
costom_pgb_enabled = format_ipt(
"自定义进度条样式 (否/0|是/1)",
bool_str,
"输入内容格式错误,应为 是/1/真/t/y 或 否/0/假/f/n",
)[1]
if costom_pgb_enabled:
style = ipt("基本样式组 (回车默认)")
if not style:
style = DEFAULT_PROGRESSBAR_STYLE[0]
yet_part = ipt("未播放样式 (回车默认)")
if not yet_part:
yet_part = DEFAULT_PROGRESSBAR_STYLE[1][1]
done_part = ipt("已播放样式 (回车默认)")
if not done_part:
done_part = DEFAULT_PROGRESSBAR_STYLE[1][0]
base_style = ipt("基本样式组 (留空默认)")
if base_style:
style.set_base_style(base_style)
yet_part = ipt("未播放样式 (留空默认)")
if yet_part:
style.set_to_play_style(yet_part)
done_part = ipt("已播放样式 (留空默认)")
if done_part:
style.set_played_style(done_part)
else:
style = None
if output_file_format == 0:
if player_format == 1:
@ -344,8 +349,8 @@ if output_file_format == 0:
elif player_format == 2:
cvt_method = to_addon_pack_in_repeater
elif output_file_format == 2:
# if player_format == 1:
# cvt_method = to_mcstructure_file_in_score
if player_format == 1:
cvt_method = to_mcstructure_file_in_score
if player_format == 0:
cvt_method = to_mcstructure_file_in_delay
elif player_format == 2:
@ -355,36 +360,37 @@ elif output_file_format == 2:
for singleMidi in midis:
prt("\n" f"正在处理 {singleMidi}")
cvt_mid = Musicreater.MidiConvert.from_midi_file(
singleMidi, old_exe_format=old_exe_enabled
)
cvt_cfg = ConvertConfig(
out_path,
*prompts[:2],
progressbar=(
((style, (done_part, yet_part)) if costom_pgb_enabled else True) # type: ignore
if prompts[2]
else False
),
midi_file_path=singleMidi,
play_speed=prompts[0],
old_exe_format=old_exe_enabled,
min_volume=prompts[1],
)
conversion_result = (
(cvt_method(cvt_mid, cvt_cfg, *prompts[3:])) # type: ignore
(cvt_method(cvt_mid, out_path, style, *prompts[3:])) # type: ignore
if output_file_format == 0
else (
(
to_BDX_file_in_score(cvt_mid, cvt_cfg, *prompts[3:])
to_BDX_file_in_score(cvt_mid, out_path, style, *prompts[3:])
if player_format == 1
else to_BDX_file_in_delay(cvt_mid, cvt_cfg, *prompts[3:])
else to_BDX_file_in_delay(cvt_mid, out_path, style, *prompts[3:])
)
if output_file_format == 1
else (cvt_method(cvt_mid, cvt_cfg, *prompts[3:])) # type: ignore
else (cvt_method(cvt_mid, out_path, *prompts[2:]))
)
)
prt(
f" 结构大小:{conversion_result[0]},播放刻数:{conversion_result[1]}"
if output_file_format == 2
else f" 指令总长:{conversion_result[0]},播放刻数:{conversion_result[1]}{f''',结构大小:{conversion_result[2]},末点坐标:{conversion_result[3]}''' if output_file_format == 1 else ''}" # type: ignore
"\t{}{},播放刻数:{}{}".format(
"结构大小" if output_file_format == 2 else "指令总长",
conversion_result[0],
conversion_result[1],
(
",结构大小:{},末点坐标:{}".format(*conversion_result[2:])
if output_file_format == 1
else ""
),
)
)
exitSth = ipt("结束。换行以退出程序。")

View File

@ -7,11 +7,16 @@
伶伦转换器暨模组特用奇巧
Linglun Converter for Special Use with addons
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
伶伦转换器暨模组特用奇巧版本本项目的协议颁发者为 金羿
The Licensor of _Linglun Converter for Special Use with addons_("this project") is Eilles Wan.
本项目根据 第一版 汉钰律许可协议本协议授权
任何人皆可从以下地址获得本协议副本https://gitee.com/EillesWan/YulvLicenses
若非因法律要求或经过了特殊准许此作品在根据本协议原样提供的基础上不予提供任何形式的担保任何明示任何暗示或类似承诺也就是说用户将自行承担因此作品的质量或性能问题而产生的全部风险
详细的准许和限制条款请见原协议文本
"""
__version__ = "0.0.1"

View File

@ -4,11 +4,16 @@
伶伦转换器 WXGUI
Linglun Converter WxPython GUI
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
伶伦转换器WXGUI版本本项目的协议颁发者为 金羿
The Licensor of _Linglun Converter WxPython GUI_("this project") is Eilles Wan.
本项目根据 第一版 汉钰律许可协议本协议授权
任何人皆可从以下地址获得本协议副本https://gitee.com/EillesWan/YulvLicenses
若非因法律要求或经过了特殊准许此作品在根据本协议原样提供的基础上不予提供任何形式的担保任何明示任何暗示或类似承诺也就是说用户将自行承担因此作品的质量或性能问题而产生的全部风险
详细的准许和限制条款请见原协议文本
"""
@ -1250,7 +1255,7 @@ class ConvertPagePanel(wx.Panel):
None,
message="选择MIDI文件",
defaultDir="./",
wildcard="MIDI 序列 (*.mid;*.midi)|*.mid;*.midi",
wildcard="Midi数字乐谱 (*.mid;*.midi)|*.mid;*.midi",
style=wx.FD_OPEN | wx.FD_MULTIPLE | wx.FD_FILE_MUST_EXIST,
)
dialogResult = fileDialog.ShowModal()

View File

@ -4,11 +4,11 @@
伶伦转换器 作者信息组件
Linglun Converter Author Page Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""

View File

@ -4,11 +4,11 @@
伶伦转换器 命令行组件
Linglun Converter Command Line IO Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""

View File

@ -4,11 +4,11 @@
伶伦转换器 本地化组件
Linglun Converter Language Localization Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""

View File

@ -2,13 +2,13 @@
"""
伶伦转换器 打包存档组件
Linglun Converter Language Localization Component
Linglun Converter Data Package Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""

View File

@ -4,11 +4,11 @@
伶伦转换器 版本检查组件
Linglun Converter Version Checking Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""
import requests

View File

@ -4,11 +4,11 @@
伶伦转换器 HTML页组件
Linglun Converter HTML Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""

View File

@ -4,11 +4,11 @@
伶伦转换器 言论版组件
Linglun Converter Yan Lun Component
版权所有 © 2024 金羿 & 睿乐开发组
Copyright © 2024 EillesWan & TriM Org.
版权所有 © 2024 金羿
Copyright © 2024 EillesWan
开源相关声明请见 ./License.md
Terms & Conditions: ./Lisense.md
开源相关声明请见 仓库根目录下的 License.md
Terms & Conditions: License.md in the root directory
"""
import requests
@ -30,9 +30,11 @@ solar_date = (solar_datetime.month, solar_datetime.day)
lunar_date = (lunar_datetime.lunar_month, lunar_datetime.lunar_day)
if solar_date == (4, 3):
yanlun_texts = ["金羿ELS 生日快乐~"]
yanlun_texts = ["金羿ELS 生日快乐~", "Happy Birthday, Eilles!"]
elif solar_date == (8, 6):
yanlun_texts = ["诸葛八卦 生日快乐~"]
yanlun_texts = ["诸葛亮与八卦阵 生日快乐~", "Happy Birthday, bgArray~!"]
elif solar_date == (8, 16):
yanlun_texts = ["鱼旧梦 生日快乐~", "Happy Birthday, ElapsingDreams~!"]
else:
try: