# daring
**Repository Path**: Raodi/daring
## Basic Information
- **Project Name**: daring
- **Description**: daring 是一套Python脚本,专为自动化翻译流程而设计。这套脚本包含了一系列的函数,用于处理从文本预处理到API调用的各种翻译相关任务。
- **Primary Language**: Python
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-07-24
- **Last Updated**: 2025-08-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# daring
---
# daring 工具
[](LICENSE)
[](https://gitee.com/Raodi/daring)
## 目录
- [简介](#简介)
- [功能](#功能)
- [安装](#安装)
- [示例](#示例)
- [使用](#使用)
- [SQL使用](#SQL使用)
- [贡献](#贡献)
- [许可证](#许可证)
## 简介
daring 是一套Python脚本,专为自动化翻译流程而设计。这套脚本包含了一系列的函数,用于处理从文本预处理到API调用的各种翻译相关任务。
## 功能
- **批量翻译**:支持对大量文本进行高效翻译。
- **格式转换**:自动将文本从一种格式转换为另一种,例如从HTML实体到实际字符。
- **API集成**:与多个翻译服务提供商的API集成,如Google Translate API。
- **错误处理**:内置错误处理机制,确保在出现故障时仍能优雅地运行。
- **性能优化**:利用缓存和异步处理技术提高翻译效率。
## 安装
确保你的环境中已安装Python 3.8或更高版本。
```bash
pip install daring
或者
pip install daring -i https://pypi.python.org/simple
```
## 示例
1.直接当作翻译工具函数使用
```bash
from daring import GoogleBatchTranslator
if __name__ == "__main__":
logic = GoogleBatchTranslator(src_lang='zh-CH', target_lang='id', network_singleton=True,
url="http://0.0.0.0:1111/v1/api/google/translator")
result = logic.handler(src_list=['脚本'])
print(result)
result = logic.handler(
src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"],
is_purified=True,
is_decoded=True)
print(result)
result = logic.handler(
src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"],
is_purified=True)
print(result)
result = logic.handler(src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"])
print(result)
result = logic.handler(src_lang='auto', src_list=['ဟယ်လို'], target_lang='zh-TW')
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'])
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'], is_decoded=True)
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'], is_purified=True, is_decoded=True)
print(result)
```
执行结果如下:
```bash
E:\rd\tool\python3.8.1\python.exe D:/PyProject/test_daring/test_daring.py
_____ _ _______ _ _
/ ____| | | |__ __| | | | |
| | __ ___ ___ __ _| | ___| |_ __ __ _ _ __ ___| | __ _| |_ ___ _ __
| | |_ |/ _ \ / _ \ / _` | |/ _ \ | '__/ _` | '_ \/ __| |/ _` | __/ _ \| '__|
| |__| | (_) | (_) | (_| | | __/ | | | (_| | | | \__ \ | (_| | || (_) | |
\_____|\___/ \___/ \__, |_|\___|_|_| \__,_|_| |_|___/_|\__,_|\__\___/|_|
__/ |
|___/ 欢迎使用google translator v1.1.12.1 © 202x Raod.
已就绪
{'code': '200', 'data': ['naskah'], 'msg': 'success', 'time': '0.22986245155334473'}
{'code': '200', 'data': ['Yang Ying kembali menimbulkan sensasi baru-baru ini. Dia telah debut selama bertahun-tahun, tetapi jika menyangkut karya representatifnya, semua orang masih belum bisa langsung mengatakannya.Bagaimanapun, dia selalu dianggap sebagai "halo" di industri hiburan.'], 'msg': 'success', 'time': '0.2324509620666504'}
{'code': '200', 'data': ['Yang Ying kembali menimbulkan sensasi baru-baru ini. Dia telah debut selama bertahun-tahun, tetapi jika menyangkut karya representatifnya, semua orang masih belum bisa langsung mengatakannya.Bagaimanapun, dia selalu dianggap sebagai "halo" di industri hiburan.'], 'msg': 'success', 'time': '0.2035074234008789'}
{'code': '200', 'data': ['杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。 Yang Ying kembali menimbulkan sensasi baru-baru ini. Dia telah debut selama bertahun-tahun, tetapi jika menyangkut karya representatifnya, semua orang masih belum bisa langsung mengatakannya.毕竟在娱乐圈中,她一直被认为是个“hello”。 Bagaimanapun, dia selalu dianggap sebagai "halo" di industri hiburan.'], 'msg': 'success', 'time': '0.23633670806884766'}
{'code': '200', 'data': [['你好呀', 'my']], 'msg': 'success', 'time': '0.18155121803283691'}
{'code': '200', 'data': ['Dikotomi secara rekursif menangani data yang hilang, dia dianggap sebagai "halo"'], 'msg': 'success', 'time': '0.17732763290405273'}
{'code': '200', 'data': ['Dikotomi secara rekursif menangani data yang hilang, dia dianggap sebagai "halo"'], 'msg': 'success', 'time': '0.2064962387084961'}
{'code': '200', 'data': ['Dikotomi secara rekursif menangani data yang hilang, dia dianggap sebagai "halo"'], 'msg': 'success', 'time': '0.25403642654418945'}
已退出
Process finished with exit code 0
```
## 使用
```bash
from daring import GoogleBatchTranslator
if __name__ == "__main__":
## 使用方法1: 目录下txt文件批量行处理
# logic = GoogleBatchTranslator(src_lang='zh-CH', target_lang='id', network_singleton=False, min_row=130, max_row=180,
# src_txt_dir=r'E:\temp\txt_translation_task\data_txt\data',
# target_txt_dir=r'E:\temp\txt_translation_task\data_txt\target_',
# url="http://0.0.0.0:1111/v1/api/google/translator",
# reading_thread_number=35, processing_thread_number=35, writing_thread_number=35,
# forced_reconnection=True, forced_reconnection_min=2, forced_reconnection_max=5)
# logic.handler()
# # ## 使用方法2: 仅进行网络请求 -- 完整写法
logic = GoogleBatchTranslator(src_lang='zh-CH', target_lang='id', network_singleton=True, url="http://0.0.0.0:1111/v1/api/google/translator")
result = logic.handler(src_list=['脚本'])
print(result)
result = logic.handler(
src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"],
is_purified=True,
is_decoded=True)
print(result)
result = logic.handler(
src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"],
is_purified=True)
print(result)
result = logic.handler(src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"])
print(result)
result = logic.handler(src_lang='auto', src_list=['ဟယ်လို'], target_lang='zh-TW')
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'])
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'], is_decoded=True)
print(result)
result = logic.handler(src_list=['二分法递归处理丢失的数据,她一直被认为是个“hello”'], is_purified=True, is_decoded=True)
print(result)
#
# # ## 使用方法3: 仅进行网络请求 -- 简写
# logic = GoogleBatchTranslator(is_display_banner=False)
# result = logic.handler(src_list=['二分法递归处理丢失的数据'])
# print(result)
# result = logic.handler(src_lang='zh-CH', src_list=['二分法递归处理丢失的数据'], target_lang='zh-TW')
# print(result)
# result = logic.handler(src_list=['二分法递归处理丢失的数据'])
# print(result)
#
# ## 使用方法4: 仅进行网络请求 -- 枚举语言+简写
# logic = GoogleBatchTranslator()
# result = logic.handler(src_list=['二分法递归处理丢失的数据'])
# print(result)
# result = logic.handler(src_lang=logic.Langs.zhCN.value, src_list=['二分法递归处理丢失的数据'], target_lang=logic.Langs.en.value)
# print(result)
# result = logic.handler(src_lang=logic.Langs.zhCN.value, src_list=["杨颖最近再次引起了轰动,她已经出道多年了,但是提到她的代表作品时,大家仍然无法立刻说出。毕竟在娱乐圈中,她一直被认为是个“hello”。"], target_lang=logic.Langs.vi.value)
# print(result)
# result = logic.handler(src_list=['二分法递归处理丢失的数据'])
# print(result)
# ###### 工具测试
# rToolBox = GoogleBatchTranslator().RToolBox()
# ## 1. 批量 txt 文件合并到一个 txt
# rToolBox.TxtFilesMerger().merge_txt_files(
# input_folder=r'E:\temp\txt_translation_task\data_txt\data3',
# output_file_path=r'E:\temp\txt_translation_task\data_txt\target_en2zh_total1.txt'
# )
# ## 2.批量txt文件移动到一个新的文件
# rToolBox.BatchFileOperationTool().move_files2_new_directory(
# source_dir=r'E:\temp\txt_translation_task\data_txt\data2',
# fomt='.txt',
# target_dir=r'E:\temp\txt_translation_task\data_txt\data'
# )
# ## 3.切割大 txt 文件成小txt文件
# rToolBox.LargeTxtFileCutter().handler(
# input_folder=r'E:\temp\txt_translation_task\data_txt\data',
# output_folder=r'E:\temp\txt_translation_task\data_txt\data3',
# lines_per_file=1000
# )
```
## SQL使用
通过字典生成sql并操作mysql数据表
```bash
from daring import RSql
if __name__ == "__main__":
rSql = RSql(connect=pymysql.connect(
user='root',
password='123456',
db='f_saas_cfg',
host='127.0.0.1',
port=3306,
charset='utf8mb4'
))
# 1.数据插入
data_dic = {
'id': '2312312',
'name': 'lisi223',
'del': 0
}
rSql.insert(table_name='test_table', dict=data_dic, fail_event=fail_)
# 2.数据更新
data_dic_new = {
'id': '2312312',
'name': 'lisi2266',
'del': 0
}
rSql.update(
table_name='test_table', dict=data_dic_new, filter_dict_key_list=[],
fail_event=fail_, is_enabled_where=True, where_dict={
"name": "lisi223"
})
# 3.数据存在查询
is_exists = rSql.exists(table_name='test_table', dict=data_dic, filter_dict_key_list=[], is_enabled_where=True,
where_dict={
"name": "lisi2266"
})
print('is_exists', is_exists)
# 4.数据删除
rSql.delete(table_name='test_table', is_enabled_where=True, where_dict={
"name": "lisi2266"
})
# 5.查询全部数据
result = rSql.query_all(table_name='test_table')
print(result)
# 6.查询全部数据
result = rSql.query_all_field(table_name='test_table', dict=data_dic, filter_dict_key_list=["id"])
print(result)
# 7.条件查询
result = rSql.query_where(table_name='test_table', dict=data_dic, filter_dict_key_list=[], is_enabled_where=True,
where_dict={
"id": 2312312
})
print(result)
# 8.条件查询
result = rSql.query(table_name='test_table', dict=data_dic, filter_dict_key_list=['del'], is_enabled_where=True,
where_dict={
"id": 2312312
})
print(result)
```
执行结果如下:
```bash
E:\rd\tool\python3.8.1\python.exe D:/PyProject/test_daring/test_daring.py
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 插入成功! INSERT INTO test_table(id,name,del) values('2312312','lisi223','0')
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 更新成功! UPDATE test_table SET id='2312312' ,name='lisi2266' ,del='0' WHERE name = 'lisi223'
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 查询成功! select case when EXISTS( SELECT obj.id, obj.name, obj.del FROM test_table AS obj WHERE obj.name = 'lisi2266' ) then True else False end as result
is_exists True
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 删除成功! DELETE FROM test_table WHERE name = 'lisi2266'
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 查询成功! SELECT * FROM test_table
[{'id': '42376fc5-6301-11eb-81ae-0242ac110003', 'name': '33', 'del': '1'}, {'id': '425caff4-6301-11eb-81ae-0242ac110003', 'name': '33', 'del': '1'}, {'id': '42825c8a-6301-11eb-81ae-0242ac110003', 'name': '33', 'del': '1'}, {'id': '42a6d445-6301-11eb-81ae-0242ac110003', 'name': '33', 'del': '1'}, {'id': '42c60d8d-6301-11eb-81ae-0242ac110003', 'name': '33', 'del': '1'}, {'id': 'b83da5c2-6301-11eb-81ae-0242ac110003', 'name': '66', 'del': '1'}, {'id': 'e5f910d1-6302-11eb-81ae-0242ac110003', 'name': '88', 'del': '1'}, {'id': '2344422222222222222223434343434344', 'name': '34', 'del': '1'}, {'id': '234333333333333333333333333333333333', 'name': '433', 'del': '1'}, {'id': '1112233333333333222', 'name': '323', 'del': '1'}, {'id': '232322222222222222222222222', 'name': '323', 'del': '1'}, {'id': '2323222222222222222222222222222', 'name': '222', 'del': '1'}, {'id': '21321', 'name': '222', 'del': '1'}, {'id': '21321', 'name': '222', 'del': '1'}, {'id': '213', 'name': '111', 'del': '1'}, {'id': '123123', 'name': '2323', 'del': '1'}, {'id': '123123', 'name': '2323', 'del': '1'}, {'id': '12312321', 'name': '232', 'del': '1'}, {'id': '9999', 'name': '9999', 'del': '0'}, {'id': '9999', 'name': '9999', 'del': '0'}, {'id': '77777', 'name': '77777', 'del': '1'}, {'id': '6666', 'name': '6666', 'del': '0'}, {'id': '76767676', 'name': '76767676', 'del': '0'}, {'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '1'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '1'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}]
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 查询成功! SELECT obj.name, obj.del FROM test_table AS obj
[{'name': '33', 'del': '1'}, {'name': '33', 'del': '1'}, {'name': '33', 'del': '1'}, {'name': '33', 'del': '1'}, {'name': '33', 'del': '1'}, {'name': '66', 'del': '1'}, {'name': '88', 'del': '1'}, {'name': '34', 'del': '1'}, {'name': '433', 'del': '1'}, {'name': '323', 'del': '1'}, {'name': '323', 'del': '1'}, {'name': '222', 'del': '1'}, {'name': '222', 'del': '1'}, {'name': '222', 'del': '1'}, {'name': '111', 'del': '1'}, {'name': '2323', 'del': '1'}, {'name': '2323', 'del': '1'}, {'name': '232', 'del': '1'}, {'name': '9999', 'del': '0'}, {'name': '9999', 'del': '0'}, {'name': '77777', 'del': '1'}, {'name': '6666', 'del': '0'}, {'name': '76767676', 'del': '0'}, {'name': 'lisi', 'del': '0'}, {'name': 'zhangsan', 'del': '0'}, {'name': 'zhangsan', 'del': '0'}, {'name': 'zhangsan', 'del': '0'}, {'name': 'zhangsan', 'del': '0'}, {'name': 'zhangsan', 'del': '0'}, {'name': 'zhangsan5555', 'del': '1'}, {'name': 'zhangsan5555', 'del': '1'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'zhangsan5555', 'del': '0'}, {'name': 'lisi', 'del': '0'}, {'name': 'lisi', 'del': '0'}, {'name': 'lisi222', 'del': '0'}, {'name': 'lisi222', 'del': '0'}, {'name': 'lisi222', 'del': '0'}, {'name': 'lisi222', 'del': '0'}, {'name': 'lisi222', 'del': '0'}, {'name': 'lisi222', 'del': '0'}]
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 查询成功! SELECT obj.id, obj.name, obj.del FROM test_table AS obj WHERE obj.id = '2312312'
[{'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '1'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '1'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'zhangsan5555', 'del': '0'}, {'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'lisi', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}, {'id': '2312312', 'name': 'lisi222', 'del': '0'}]
2024-07-25 16:53:09 INFO ☠ 数据库操作 : 查询成功! SELECT obj.id, obj.name FROM test_table AS obj WHERE obj.id = '2312312'
[{'id': '2312312', 'name': 'lisi'}, {'id': '2312312', 'name': 'zhangsan'}, {'id': '2312312', 'name': 'zhangsan'}, {'id': '2312312', 'name': 'zhangsan'}, {'id': '2312312', 'name': 'zhangsan'}, {'id': '2312312', 'name': 'zhangsan'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'zhangsan5555'}, {'id': '2312312', 'name': 'lisi'}, {'id': '2312312', 'name': 'lisi'}, {'id': '2312312', 'name': 'lisi222'}, {'id': '2312312', 'name': 'lisi222'}, {'id': '2312312', 'name': 'lisi222'}, {'id': '2312312', 'name': 'lisi222'}, {'id': '2312312', 'name': 'lisi222'}, {'id': '2312312', 'name': 'lisi222'}]
Process finished with exit code 0
```
## 贡献
欢迎任何贡献!无论是修复bug、添加新功能还是改进现有代码,我们都乐于接受。请遵循我们的贡献指南提交pull request。
## 许可证
本项目使用Apache-2.0 + 自定义许可,详情参见LICENSE文件。