From 695af6b83bd6e6f12f13f22b9182f87f51defe3f Mon Sep 17 00:00:00 2001 From: CharlesPikachu <1159254961@qq.com> Date: Mon, 25 Apr 2022 20:37:15 +0800 Subject: [PATCH] bump to v0.1.18, support goodgoodgenerator --- README.md | 1 + docs/Changelog.md | 7 +- docs/Quickstart.md | 27 +++ pytools/__init__.py | 2 +- pytools/modules/__init__.py | 1 + pytools/modules/goodgoodgenerator/__init__.py | 2 + .../goodgoodgenerator/goodgoodgenerator.py | 143 ++++++++++++++++ .../goodgoodgenerator/resources/data.json | 155 ++++++++++++++++++ .../goodgoodgenerator/resources/icon.jpg | Bin 0 -> 64190 bytes pytools/pytools.py | 3 +- 10 files changed, 338 insertions(+), 3 deletions(-) create mode 100644 pytools/modules/goodgoodgenerator/__init__.py create mode 100644 pytools/modules/goodgoodgenerator/goodgoodgenerator.py create mode 100644 pytools/modules/goodgoodgenerator/resources/data.json create mode 100644 pytools/modules/goodgoodgenerator/resources/icon.jpg diff --git a/README.md b/README.md index a117b2b..ad58dc4 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ You can star this repository to keep track of the project if it's helpful for yo | arxivhelper | [click](https://mp.weixin.qq.com/s/XypPxlWmzbRoEEEhusEXJA) | [click](./pytools/modules/arxivhelper) | Arxiv小助手 | | ukrainemap | [click](https://mp.weixin.qq.com/s/zthIMtWqF7mJiIlXy1-bsA) | [click](./pytools/modules/ukrainemap) | 乌克兰地图查询系统 | | sovietgenerator | [click](https://mp.weixin.qq.com/s/PUTJxDLpCVRSaUzvarizEQ) | [click](./pytools/modules/sovietgenerator) | 苏联笑话生成器 | +| goodgoodgenerator | [click]() | [click](./pytools/modules/goodgoodgenerator) | 稳中向好生成器 | # Install diff --git a/docs/Changelog.md b/docs/Changelog.md index 93269f5..f1b9ba1 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -63,4 +63,9 @@ **2022-04-20** - 版本号: v0.1.17, -- 更新内容: 支持苏联笑话生成器。 \ No newline at end of file +- 更新内容: 支持苏联笑话生成器。 + +**2022-04-25** + +- 版本号: v0.1.18, +- 更新内容: 支持稳中向好生成器。 \ No newline at end of file diff --git a/docs/Quickstart.md b/docs/Quickstart.md index 775e2e3..fedaca5 100644 --- a/docs/Quickstart.md +++ b/docs/Quickstart.md @@ -899,6 +899,33 @@ tool_client.execute('sovietgenerator') } ``` +#### 稳中向好生成器 + +**1.公众号文章链接** + +[点击查看]() + +**2.功能介绍** + +简单的稳中向好生成器。 + +**3.调用示例代码** + +```python +from pytools import pytools + +tool_client = pytools.pytools() +tool_client.execute('goodgoodgenerator') +``` + +**4.config中支持的参数** + +``` +{ + title: 软件显示的标题, 默认值"稳中向好生成器 —— Charles的皮卡丘", +} +``` + ## 随机运行一个小程序 diff --git a/pytools/__init__.py b/pytools/__init__.py index ce27b29..e7ea93e 100644 --- a/pytools/__init__.py +++ b/pytools/__init__.py @@ -5,7 +5,7 @@ '''url''' __url__ = 'https://github.com/CharlesPikachu/pytools' '''version''' -__version__ = '0.1.17' +__version__ = '0.1.18' '''author''' __author__ = 'Charles' '''email''' diff --git a/pytools/modules/__init__.py b/pytools/modules/__init__.py index ea61247..35d4c2e 100644 --- a/pytools/modules/__init__.py +++ b/pytools/modules/__init__.py @@ -27,6 +27,7 @@ from .artsigngenerator import ArtSignGenerator from .controlpcbyemail import ControlPCbyEmail from .naughtyconfession import NaughtyConfession +from .goodgoodgenerator import GoodGoodGenerator from .luxunsentencesquery import LuxunSentencesQuery from .hubbleseeonbirthday import HubbleSeeOnBirthday from .newyearcardgenerator import NewYearCardGenerator diff --git a/pytools/modules/goodgoodgenerator/__init__.py b/pytools/modules/goodgoodgenerator/__init__.py new file mode 100644 index 0000000..91d8e1a --- /dev/null +++ b/pytools/modules/goodgoodgenerator/__init__.py @@ -0,0 +1,2 @@ +'''初始化''' +from .goodgoodgenerator import GoodGoodGenerator \ No newline at end of file diff --git a/pytools/modules/goodgoodgenerator/goodgoodgenerator.py b/pytools/modules/goodgoodgenerator/goodgoodgenerator.py new file mode 100644 index 0000000..26df79f --- /dev/null +++ b/pytools/modules/goodgoodgenerator/goodgoodgenerator.py @@ -0,0 +1,143 @@ +''' +Function: + 稳中向好生成器 +Author: + Charles +微信公众号: + Charle的皮卡丘 +''' +import os +import json +import random +import pyttsx3 +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +from PyQt5 import QtWidgets, QtGui + + +'''稳中向好生成器''' +class GoodGoodGenerator(QWidget): + tool_name = '稳中向好生成器' + def __init__(self, parent=None, title='稳中向好生成器 —— Charles的皮卡丘', **kwargs): + super(GoodGoodGenerator, self).__init__(parent) + rootdir = os.path.split(os.path.abspath(__file__))[0] + self.setFixedSize(800, 500) + self.setWindowTitle(title) + self.setWindowIcon(QIcon(os.path.join(rootdir, 'resources/icon.jpg'))) + self.resources = json.load(open(os.path.join(rootdir, 'resources/data.json'), 'r', encoding='utf-8')) + self.article = None + # 定义一些必要的组件 + grid = QGridLayout() + # --标签 + label_1 = QLabel('稳中向好的事件主题:') + label_2 = QLabel('生成的文章字数:') + # --输入框 + self.edit_1 = QLineEdit() + self.edit_1.setText('年轻人买房') + self.edit_2 = QLineEdit() + self.edit_2.setText('500') + # --生成按钮 + button_generate = QPushButton('生成稳中向好文章') + # --朗读按钮 + button_deacon = QPushButton('朗读生成的文章') + # --结果显示框 + self.text_edit = QTextEdit() + # 组件布局 + grid.addWidget(label_1, 0, 0, 1, 1) + grid.addWidget(self.edit_1, 0, 1, 1, 1) + grid.addWidget(label_2, 1, 0, 1, 1) + grid.addWidget(self.edit_2, 1, 1, 1, 1) + grid.addWidget(button_generate, 2, 0, 1, 2) + grid.addWidget(button_deacon, 3, 0, 1, 2) + grid.addWidget(self.text_edit, 4, 0, 5, 2) + self.setLayout(grid) + # 事件绑定 + button_generate.clicked.connect(self.generate) + button_deacon.clicked.connect(self.deacon) + '''朗诵稳中向好文章''' + def deacon(self): + pyttsx3.speak(self.article) + '''生成稳中向好文章''' + def generate(self): + # 分配开头, 结尾和主体内容的字数 + num_words = int(self.edit_2.text()) + begin_num_words, body_num_words, end_num_words = num_words * 0.15, num_words * 0.7, num_words * 0.15 + # 主题 + theme = self.edit_1.text() + # 生成标题 + title = self.generatetitle(theme) + # 生成文章开头 + begin = self.generatebegin(begin_num_words, theme) + # 生成文章主体 + body = self.generatebody(body_num_words, theme) + # 生成文章结尾 + end = self.generateend(end_num_words, theme) + # 整合文章 + self.article = f'{title}\n {begin}\n {body}\n {end}' + # 显示文章 + self.text_edit.setText(self.article) + '''替换原始内容中的占位符''' + def replace(self, input_str, theme): + # vn + while input_str.find('vn') != -1: + total = len(self.resources['verb']) - 1 + verb = self.resources['verb'][random.randint(0, total)] + total = len(self.resources['noun']) - 1 + noun = self.resources['noun'][random.randint(0, total)] + vn = ','.join([verb + noun for i in range(random.randint(1, 4))]) + input_str = input_str.replace('vn', vn, 1) + # v + while input_str.find('v') != -1: + total = len(self.resources['verb']) - 1 + verb = self.resources['verb'][random.randint(0, total)] + input_str = input_str.replace('v', verb, 1) + # n + while input_str.find('n') != -1: + total = len(self.resources['noun']) - 1 + noun = self.resources['noun'][random.randint(0, total)] + input_str = input_str.replace('n', noun, 1) + # ss + while input_str.find('ss') != -1: + total = len(self.resources['sentence']) - 1 + sentence = self.resources['sentence'][random.randint(0, total)] + input_str = input_str.replace('ss', sentence, 1) + # sp + while input_str.find('sp') != -1: + total = len(self.resources['parallel_sentence']) - 1 + parallel_sentence = self.resources['parallel_sentence'][random.randint(0, total)] + input_str = input_str.replace('sp', parallel_sentence, 1) + # p + while input_str.find('p') != -1: + total = len(self.resources['phrase']) - 1 + phrase = self.resources['phrase'][random.randint(0, total)] + input_str = input_str.replace('p', phrase, 1) + # xx + input_str = input_str.replace('xx', theme) + # return + return input_str + '''生成文章标题''' + def generatetitle(self, theme): + total = len(self.resources['title']) - 1 + title = self.resources['title'][random.randint(0, total)] + return self.replace(title, theme) + '''生成文章开头''' + def generatebegin(self, begin_num_words, theme): + begin = '' + while len(begin) < begin_num_words: + total = len(self.resources['beginning']) - 1 + begin += self.replace(self.resources['beginning'][random.randint(0, total)], theme) + return begin + '''生成文章结尾''' + def generateend(self, end_num_words, theme): + end = '' + while len(end) < end_num_words: + total = len(self.resources['ending']) - 1 + end += self.replace(self.resources['ending'][random.randint(0, total)], theme) + return end + '''生成文章主体''' + def generatebody(self, body_num_words, theme): + body = '' + while len(body) < body_num_words: + total = len(self.resources['body']) - 1 + body += self.replace(self.resources['body'][random.randint(0, total)], theme) + return body \ No newline at end of file diff --git a/pytools/modules/goodgoodgenerator/resources/data.json b/pytools/modules/goodgoodgenerator/resources/data.json new file mode 100644 index 0000000..e9641ab --- /dev/null +++ b/pytools/modules/goodgoodgenerator/resources/data.json @@ -0,0 +1,155 @@ +{ + "title": + [ + "解决xx亟需v", + "治理xx问题 加强v是关键", + "治理xx需v", + "v是xx的重要举措", + "以n实现xx目标", + "促进n带来xx", + "助推n实现xx", + "让xx和n两翼齐飞", + "n是开启xx之门的金钥匙", + "做好xx文章 v是前言", + "让n成为治疗xx的良药", + "n是xx的助推器", + "扬n之帆 起xx之航", + "以n为音符 奏xx之乐章", + "以n之飞翼 展xx之宏图", + "引n之水 育xx之花", + "向n要质量", + "用创新推动xx产业化", + "破除xx“围墙心态”", + "在行动中树立xx标杆", + "把牢xx之舵,高扬n之旗", + "用n力量撬动xx攻坚", + "紧绷xx这跟弦", + "同频共振,唱好xx大合唱", + "让xx落地,让n生根", + "努力培育良好的xx心态", + "向发展xx要活力", + "治理xx决不能手软", + "让xx,内化于心外化于行", + "发展之果,孕自xx之花", + "让xx驱动发展行稳致远", + "少些功利才能重拾xx的乐趣", + "以创新开辟xx出路", + "以钉钉子精神 打赢xx攻坚战", + "细节决定成败 需多积xx之功", + "xx,让生活更美好", + "xx是实现自我净化的有效路径", + "让xx公平更让人省心", + "将xx保护纳入法治轨道", + "不能让xx“野蛮生长”", + "xx,走“流量”更需要“走心”", + "xx,创新时代的“晴雨表”", + "xx的根基在n" + ], + "beginning": + [ + "长期以来,xx一直是n老大难问题,从一定意义上讲,能否彻底解决xx问题,关乎vn,关乎vn,是p的重中之重。因此,解决xx问题,是p之举。", + "自p以来,xx问题就困扰着我们。xx问题不仅极易造成vn,而且可能引发n危害,最终导致n的后果。因此,我们必须走p之路。sp", + "当下,xx已进入发展快车道,带来了n的方便。但是,当我们站在新的历史发展关口,发现xx问题已经严重干扰了n建设。这些问题如果得不到有效解决,将会导致vn进而影响p。我们不仅要vn,更要vn。总而言之要sp", + "长期以来,我们在n领域成绩斐然,n突飞猛进。然而xx的发展并不像它表面那么光鲜,xx问题依然突出。因此,必须正确认识n,确保n的实现。我们不仅要vn更要p。", + "ss孔子的话穿越历史的场合,到今天依旧振聋发聩,他不断警示我们xx是我们关注的重点。xx在n运行方面发挥了至关重要的作用,促进社会飞速发展,推动经济跨越进步,但是令人心痛的是,xx也带来了一系列不容忽视的问题,如只注重了xx的表面没有真正理解xx的内涵,这造成了xx永续发展的潜力损害,从这个意义上说正确使用xx这把锋利的刀刃,助力xx的全面合理运行显得尤为重要,因此,将xx放在核心区位,置于首要地位,将是国家富强、民族振兴、人民幸福的根本之道。" + ], + "body": + [ + "综观xx发展史,各国都在不断改进vn,在n上,力求完善。以n为例,为了xx,巴拿马政府采取了p的政策,使得。鲜明的案例告诉我们,要实现xx的目的,必须在继承借鉴中发展n,sp", + "现在社会上xx的这个领域出现了一系列问题。究其原因都在于n这方面的事没做好。此问题如果不能得到重视,及时解决,将会影响vn,制约vn,甚至危害n。xxv的事件更是有利的印证。因此我们应该p。sp", + "子曰:ss形式的变化,环境的变化,群众的期待,都对xx提出了新的要求和期许。如果能够意识到n的重要性,就可以发挥其在n的潜在价值,就可以发挥其在n的巨大作用。倘若不能vn,那么就意味着不仅不能p,而且不能p,甚至会p。因此,xx是现实之需,发展之要。子曾经曰过:ss,在人生阶段中,要vn在xx这条奋斗之路上,vn是我们始终如一的追求。", + "有一个名为“蝴蝶效应”的理论:南美洲一只蝴蝶煽动翅膀有可能在一个月后的美国大陆形成一场龙卷风。它启示我们,小的、好的机制或事物应及时正确引导,为社会发展服务;小的、坏的机制或是事物应及时改正或是消除,避免危害社会。在 xx领域, n只是一个微小的细节,然而他所带来的影响却是深远的。不仅会vn,还会制约vn。因此我们要vn,总而言之,我们需要sp", + "根据n表明,要想xx,就必须vn,我们应该清醒地看到,我国正处于结构调整期、产业转型期,经济发展面临挑战,人均资源相对不足,进一步发展还面临着一些突出的问题和矛盾。从我们发展的战略全局看,走p道路,调整n结构,转变n方式,缓解n瓶颈制约,加快n升级,促进n,维护n利益。进入新阶段,xx面临着新的机遇和挑战。按照部署和要求,全面贯彻落实科学发展观,求真务实,开拓创新,扎实工作,为构建和谐社会服务,为vn,为vn,综上所述,我们应该sp", + "新时代来临,我们的xx实现了历史性跨越式发展,n得到切实巩固和提高,n得到深刻变化;n发展步伐加快;n又快又好发展。目前我们已vn。但是我们也要清醒地认识到,n的发展仍不能满足广大人民群众对于xx的强烈需求,还不能适应构建和谐社会的迫切需要。xx发展不平衡的问题突出,实施n尚未取得根本性突破,n改革需要深化,n需要提高,n尚未得到很好解决。n仍面临着新的机遇和挑战。总而言之,sp" + ], + "ending": + [ + "当前xx的问题,既有n的原因,也与n有直接关系。因此,解决xx问题,既需要n又需要n更需要从根本上vn,只有这样,才能vn,才能vn。", + "从vn,到vn,从vn,到vn,从vn,到vn,归结到一点上都是xx。ss,xx绝非一朝一夕之事,只有紧紧抓住n这个“牛鼻子”,久久为功,善始善终,方能推动n,为实现xx贡献力量。", + "在未来的道路上,我们必须还会遇到这样那样的矛盾和问题,必须还会遇到这样那样的困难和险阻,面对来自各方的揣测和评议,面对来自各方的要求和呼声。惟有树立p的理念,用p去协调解决xx,才能在xx上取得突破,让xx共同享有人生出彩,梦想成真的机会,实现xx自由。", + "当前社会现实中的xx现象,既有n的原因,也与n有直接关系。因此,解决xx问题,既需要vn,也需要vn,更需要vn。只有这样,才能实现xx目标。", + "ss对于xx问题,需要我们发扬钉钉子的精神,一锤一锤敲下去,将n干在实处,做到细处,落在深处。惟其如此,才能将钉子钉牢钉实,才能将xx问题彻底解决,才能让发展的脚步更加平稳坚定。" + ], + "verb": + [ +"推进","推动","健全","统领","协调","统筹","转变","提高","实现","适应","改革","创新","扩大","加强","促进","巩固","保障","完善","加快","振兴","扶持","改善","调整","优化","解决","宣传","教育","发挥","支持","带动","帮助","深化","规范","强化","统筹","指导","服务","健全","确保","维护","优先","贯彻","实施","深化","保证","鼓励","引导","坚持","深化","强化","监督","管理","开展","规划","整合","理顺","推行","纠正","满足","推广","遏制","整治","保护","健全","丰富","夯实","统一","尊重","制约","适应","发扬","拓宽","拓展","规范","改进","形成","逐步","实现","规范","坚持","调节","取缔","调控","把握","弘扬","借鉴","倡导","培育","打牢","武装","凝聚","激发","说服","感召","尊重","包容","树立","培育","发扬","提倡","营造","促进","唱响","主张","弘扬","通达","发展","疏导","着眼","吸引","塑造","搞好","履行","倾斜","惠及","简化","衔接","调处","关切","汇集","分析","排查","协商","化解","动员","联动","激发","增进","汲取","检验","保护","鼓励","完善","宽容","增强","融洽","凝聚","汇集","筑牢","考验","进取","凝聚","设置","吸纳","造就","聚焦","支撑","展现","体现","分析","研究","了解","掌握","发现","提出","推进","推动","制定","出台","完善","建立","健全","加强","强化","增强","促进","加深","深化","扩大","落实","细化","突出","建设","营造","开展","发挥","发扬","创新","转变","发展","统一","提高","提升","保持","优化","召开","举行","贯彻","执行","树立","引导","规范","整顿","服务","协调","沟通","配合","合作","支持","加大","开拓","拓展","巩固","保障","保证","形成","指导" + ], + "noun": + [ + "关系","力度","速度","反映","诉求","形势","任务","本质属性","总体布局","战略任务","内在要求","重要进展","决策部署","结合点","突出地位","最大限度","指导思想","科学性","协调性","体制机制","基本方略","理念意识","基本路线","基本纲领","秩序","基本经验","出发点","落脚点","要务","核心","主体","积极因素","水平","方针","结构","增量","比重","规模","标准","办法","主体","作用","特色","差距","渠道","方式","主导","纽带","主体","载体","制度","需求","能力","负担","体系","重点","资源","职能","倾向","秩序","途径","活力","项目","工程","政策","项目","竞争力","环境","素质","权利","利益","权威","氛围","职能","作用","事权","需要","能力","基础","比重","长效机制","举措","要素","精神","根本","地位","成果","核心","精神","力量","纽带","思想","理想","活力","信念","信心","风尚","意识","主旋律","正气","热点","情绪","内涵","管理","格局","准则","网络","稳定","安全","支撑","局面","环境","本领","位置","敏锐性","针对性","有效性","覆盖面","特点","规律","阵地","政策","措施","制度保障","任务","体系","机制","体制","系统","规划","战略","方针","政策","措施","要点","重点","焦点","难点","热点","亮点","矛盾","问题","建设","思想","认识","作风","整治","环境","秩序","作用","地方","基层","传统","运行","监测","监控","调控","监督","工程","计划","行动","创新","增长","方式","模式","转变","质量","水平","效益","会议","文件","精神","意识","服务","协调","沟通","力度","领域","空间","成绩","成就","进展","实效","基础","前提","关键","保障","动力","条件","环节","方法","思路","设想","途径","道路","主意","办法","力气","功夫","台阶","形势","情况","意见","建议","网络","指导","指南","目录","方案" + ], + "adverb_1": + [ + "狠","早","细","实","再","更","狠","早","细","实","再","更" + ], + "adverb_2": + [ + "加快","尽快","抓紧","尽早","整体","充分","继续","深入","自觉","主动","自主","密切","大力","全力","尽力","务必","务求","有效" + ], + "phrase": + [ + "立足当前","着眼长远","抓住机遇","应对挑战","突出重点","分步实施","全面推进","统筹兼顾","综合治理","融入其中","贯穿始终","切实抓好","扎实推进","加快发展","持续增收","积极稳妥","狠抓落实","从严控制","严格执行","坚决制止","明确职责","高举旗帜","坚定不移","牢牢把握","积极争取","深入开展","注重强化","规范程序","改进作风","积极发展","努力建设","依法实行","良性互动","优势互补","率先发展","互惠互利","做深、做细、做实","全面分析","全面贯彻","持续推进","全面落实、全面实施","逐步扭转","基本形成","普遍增加","基本建立","更加完备","逐步完善","明显提高","逐渐好转","逐步形成","不断加强","持续增效","巩固深化","大幅提高","显著改善","不断增强","日趋完善","比较圆满","统一思想","提高认识","认清形势","明确任务","加强领导","完善机制","交流经验","研究问题","团结协作","密切配合","真抓实干拓进取","突出重点","落实责任","各司其职","各负其责","集中精力","聚精会神","一心一意","心无旁骛","兢兢业业","精益求精","一抓到底","爱岗敬业","求真务实","胸怀全局","拓宽视野" + ], + "sentence": + [ + "“足寒伤心,民寒伤国。”", + "“从来治国者,宁不忘渔樵。”", + "“上之为政,得下之情则治,不得下情则乱。”", + "“人聚则强,人散则弱同心同德,庶几有成。”", + "“水有源,故其流不穷;木有根,故其生不穷。”", + "“国无常强无常弱,奉法者强则国强,奉法者弱则国弱。”", + "“奉公如法,则上下平。”", + "“天下之事,不难于立法,而难于法之需行;不难于听言,而难于言之需效。”", + "“人无德不立,国无德不兴。”", + "“勿以善小而不为,勿以恶小而为之。”", + "“其身正,不令而行;其身不正,虽令不从。”", + "“利居众后,责在人先。”", + "“天行健,君子以自强不息地势坤,君子以厚德载物。”", + "“苟日新,日日新,又日新。”", + "“工欲善其事,需先利其器。”", + "“居安思危,思则有备,有备无患。”", + "“夫民,别而听之则愚,合而听之则圣。”", + "“民者,国之根也,诚宜重其食,爱其命。”", + "“有理而无益于治者,君子弗言;有能而无益于事者,君子弗为。”", + "“治事不若治人,治人不若治法,治法不若治时。”", + "“民惟邦本,本固邦宁。”", + "“政贵有恒。”", + "“不以一己之利为利,而使天下受其利;不以一己之害为害,而使天下释其害。”", + "“苟利于民,不必法古;苟周于事,不必循旧。”", + "“政纲虽举,必求益其所未至;德泽虽布,必思及其所未周。”", + "“莫三人而迷。”", + "“天下犹人之体,腹心充实,四支虽病,终无大患。”", + "“享天下之利者,任天下之患;居天下之乐者,同天下之忧。”", + "“求木之长者,必固其根本;欲流之远者,必浚其泉源;思国之安者,必积其德义。”", + "“虑于民也深,则谋其始也精。”", + "“上安下顺,弊绝风清。”", + "“积力之所举,即无不胜也;众智之所为,即无不成也。”", + "“召远在修近,闭祸在除怨。”", + "“天下顺治在民富,天下和静在民乐,天下兴行在民趋于正。”", + "“居之以强力,发之以果敢,而成之以无私。”", + "“达人无不可,忘己爱苍生。”", + "“为国者以富民为本,以正学为基。”", + "“千夫诺诺,不如一士之谔谔。”", + "“构大厦者先择匠而后简材,治国家者先择佐而后定民。”", + "“正其本者万事理,劳于永者逸于使。”", + "“为之于未有,治之于未乱。”", + "“民安土重迁,不可卒变,易以顺行,难以逆动。”", + "“治身莫先于孝,治国莫先于公。”", + "“利莫大于治,害莫大于乱。”", + "“知屋漏者在宇下,知政失者在草野,知经误者在诸子。”", + "“宽则得众,信则人任焉。”", + "“理国要道,在于公平正直。”", + "“先民有言,询于刍荛。”" + ], + "parallel_sentence": + [ + "求真务实,积极推进xx工作制度化,建立体系,积极推进xx工作正常化,规范办文,积极推进xx工作程序化,强化责任,积极推进xx工作有序化,注重质量,积极推进xx服务规范化,统筹兼顾,积极推进xx工作正常化。", + "以求真务实的态度,积极推进xx工作制度化,以优化服务为目的,积极推进xx工作正常化,以提质加速为责任,积极推进xx工作程序化,以畅通安全为保障,积极推进xx工作智能化,以立此存照为借鉴,积极推进xx工作规范化,以解决问题为重点,积极推进xx工作有序化,以服务机关为宗旨,积极推进xx服务优质化,以统筹兼顾为重点,积极推进xx工作常态化。", + + "求真务实,抓好xx调研工作,提高质量,做好xx信息工作,紧跟进度,抓好xx督查工作,高效规范,抓好xx文秘工作,高度负责,做好xx保密工作,协调推进,做好xx档案工作,积极稳妥,做好xx信访工作,严格要求,做好xx服务工作。", + + "理思路,订制度,不断提高xx服务新水平,抓业务,重实效,努力开创xx工作新局面,重协调,强进度,尽快展现xx工作新成果,抓学习,重廉洁,促进队伍xx素质新提高。", + + "建章立制,积极推进xx管理制度化,规范办文,积极推进xx工作程序化,建立体系,积极推进xx督查正常化,注重质量,积极推进xx工作规范化,各司其职,积极推进xx工作有序化。" + ] +} diff --git a/pytools/modules/goodgoodgenerator/resources/icon.jpg b/pytools/modules/goodgoodgenerator/resources/icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e80b328251a908916034495fe7c308888cf72b59 GIT binary patch literal 64190 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 UB7DyuW)`1Xf7u~B>EHDK0T;)Awg3PC literal 0 HcmV?d00001 diff --git a/pytools/pytools.py b/pytools/pytools.py index 7fe2227..6f8c674 100644 --- a/pytools/pytools.py +++ b/pytools/pytools.py @@ -30,7 +30,7 @@ def execute(self, tool_type=None, config={}): qt_tools = [ 'newyearcardgenerator', 'luxunsentencesquery', 'artsigngenerator', 'genderpredictor', 'musicplayer', 'qrcodegenerator', 'videoplayer', 'trumptweetsgenerator', 'coupletgenerator', 'idcardquery', 'idiomsolitaire', 'inquiryexpress', 'succulentquery', 'translator', - 'desktoppet', 'computersinger', 'hubbleseeonbirthday', 'ukrainemap', 'sovietgenerator' + 'desktoppet', 'computersinger', 'hubbleseeonbirthday', 'ukrainemap', 'sovietgenerator', 'goodgoodgenerator' ] if tool_type in qt_tools: app = QApplication(sys.argv) @@ -51,6 +51,7 @@ def initialize(self): 'iplocationquery': IPLocationQuery, 'genderpredictor': GenderPredictor, 'qrcodegenerator': QRCodeGenerator, 'coupletgenerator': CoupletGenerator, 'artsigngenerator': ArtSignGenerator, 'controlpcbyemail': ControlPCbyEmail, 'naughtyconfession': NaughtyConfession, 'luxunsentencesquery': LuxunSentencesQuery, 'hubbleseeonbirthday': HubbleSeeOnBirthday, 'newyearcardgenerator': NewYearCardGenerator, 'trumptweetsgenerator': TrumpTweetsGenerator, 'sovietgenerator': SovietGenerator, + 'goodgoodgenerator': GoodGoodGenerator, } return supported_tools '''获得所有支持的tools信息'''