当前位置: 首页 > news >正文

有道论文翻译接口,python版和lua版

论文翻译接口python版

import requests
import hashlib
from urllib.parse import quotedef get_md5(s,is_hex=True):md5=hashlib.md5()md5.update(s.encode())if is_hex:return md5.hexdigest()return md5.digest()def translate(source_url,from_='en',to='zh-CHS'):params = {'from': from_,'to':to,'field': '0','product':'arxivweb','appVersion': '1.0.0','client': 'web','keyid': 'arxivweb','keyfrom': 'web','version': '1.0.0','arxivUrl': source_url}# 签名字符串sorted_params = sorted(params.items(), key=lambda x: x[0])encoded_params = '&'.join([f"{key}={value}" for key, value in sorted_params])+'&key=r*bWYmKw0Z@$1^fEk3xIxKqb!3HMTyI'# 获取签名sign=get_md5(encoded_params)# 请求参数中添加signparams.update({'sign':sign})return requests.get('https://fanyi.youdao.com/fanyilatexweb/arxiv/translate', params=params).json()if __name__=='__main__':url=input('请输入需要翻译的论文地址:')result=translate(url)print('翻译后的文件下载地址:'+result['data']['targetPdfPath'])

论文翻译接口lua版

使用ManaluaX打包成apk

  • 布局代码
{LinearLayout;layout_height="fill";orientation="vertical";layout_width="fill";gravity="left";{LinearLayout;layout_height="wrap_content";layout_width="match_parent";{EditText;layout_weight="19";layout_marginLeft="10";id="source";};{Button;text="翻译";id="transBtn";layout_margin="10";layout_weight="1";};};{LinearLayout;layout_height="match_parent";layout_width="match_parent";orientation="vertical";{LinearLayout;gravity="right";layout_width="match_parent";{TextView;text="浏览器打开";textColor="#29B6F6";id="web";layout_marginRight="15";};};{TextView;textIsSelectable=true;padding="10";id="result";layout_height="match_parent";layout_width="match_parent";};};
};
  • 主要代码
require "import"
import "manalua"
import "layout.main"activity.setTitle("有道论文翻译")
activity.setTheme(android.R.style.Theme_Material_Light)
activity.setContentView(loadlayout(main))-- 字符串url编码
function urlEncode(s)-- url编码local s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)return s:gsub(" ", "+"):gsub("%%2C",",")
end-- 字符串序列化
function tableToStr1(tbl,sep,isEncode)local str = ''local sep= sep or '&'local isEncode= isEncode==nil and false or truefor key, value in pairs(tbl) doif isEncode thenstr = str .. key .. '=' .. urlEncode(value) .. sepelsestr = str .. key .. '=' .. value .. sependendreturn string.sub(str, 1, -2)
end-- 排序后的table序列化
function tableToStr(tbl)local str = ''for key, value in ipairs(tbl) dostr = str .. value[1] .. '=' .. value[2] .. '&'endreturn string.sub(str, 1, -2)
end-- md5加密
function md5Encrypt(data,isHex)local MessageDigest = luajava.bindClass "java.security.MessageDigest"local String=luajava.bindClass "java.lang.String"local md = MessageDigest.getInstance("MD5")local bytes = md.digest(String(data).getBytes())local isHex= (isHex==nil) and true or falseif isHex ==false thenreturn bytesendlocal result = ""for i = 0, #bytes - 1 dolocal temp = string.format("%02x", (bytes[i] & 0xff))result = result .. tempendreturn result
end-- 获得按键排序后的参数table
function getSortedParams(params)local function compare(a, b)return a[1] < b[1]endlocal sorted_params = {}for key, value in pairs(params) dotable.insert(sorted_params, { key, value })endtable.sort(sorted_params, compare)return sorted_params
endfunction getTransPdf(sourcePdf,from,to)local Http=luajava.bindClass "com.androlua.Http"local json=require "cjson"local headers = {-- 设置请求头信息['authority'] = 'fanyi.youdao.com',['accept'] = 'application/json, text/plain, */*',['accept-language'] = 'zh-CN,zh;q=0.9',['referer'] = 'https://fanyi.youdao.com/trans/',['sec-ch-ua'] = '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',['sec-ch-ua-mobile'] = '?0',['sec-ch-ua-platform'] = '"Windows"',['usec-fetch-dest'] = 'empty',['sec-fetch-mode'] = 'cors',['sec-fetch-site'] = 'same-origin',['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',}local params = {-- 设置请求参数信息['from'] = 'en',['to'] = 'zh-CHS',['field'] = '0',['product'] = 'arxivweb',['appVersion'] = '1.0.0',['client'] = 'web',['keyid'] = 'arxivweb',['keyfrom'] = 'web',['version'] = '1.0.0',['arxivUrl'] = sourcePdf}local key="r*bWYmKw0Z@$1^fEk3xIxKqb!3HMTyI"-- 获取按key排序后的tablelocal encodeParams=getSortedParams(params)-- 拼接生成签名字符串local signStr=tableToStr(encodeParams).."&key="..key-- 生成签名local sign=md5Encrypt(signStr)-- 添加签名字符串到请求参数中params["sign"]=sign-- 发送请求local url="https://fanyi.youdao.com/fanyilatexweb/arxiv/translate"url=url.."?"..tableToStr1(params)local httpTask=Http.get(url,nil,nil,headers,function() end)local result=httpTask.get()local code=result[0]local content,cookie,headerif code==200 thencode,content,cookie,header=result[0],result[1],result[2],result[3]content=json.decode(content)endreturn code,content,cookie,header
endfunction 下载(url)import "android.content.Intent"import "android.net.Uri"local viewIntent = Intent("android.intent.action.VIEW",Uri.parse(url))activity.startActivity(viewIntent)
end-- 设置翻译按钮点击事件
transBtn.onClick=function()local sourceUrl=tostring(source.getText())if sourceUrl==nil or sourceUrl=="" thenprint("请输入翻译的pdf地址")elselocal code,content=getTransPdf(sourceUrl)if code==200 thenresult.setText("下载地址:"..content["data"]["targetPdfPath"])elseprint("网络错误")endend
end-- 设置浏览器打开点击事件
web.onClick=function()local url=tostring(result.getText())下载(string.sub(url,string.find(url,":")+1))
end

源码及demo apk下载地址

  • 源码: https://www.123pan.com/s/J5Nsjv-mXBN.html 提取码:gIY6
  • apk: https://www.123pan.com/s/J5Nsjv-1XBN.html 提取码:t7NA

本文由【产品经理不是经理】gzh 同步发布,欢迎关注

相关文章:

有道论文翻译接口,python版和lua版

论文翻译接口python版 import requests import hashlib from urllib.parse import quotedef get_md5(s,is_hexTrue):md5hashlib.md5()md5.update(s.encode())if is_hex:return md5.hexdigest()return md5.digest()def translate(source_url,from_en,tozh-CHS):params {from: f…...

java大数据hadoop2.9.2 Flume安装操作

1、flume安装 &#xff08;1&#xff09;解压缩 tar -xzvf apache-flume-1.9.0-bin.tar.gz rm -rf apache-flume-1.9.0-bin.tar.gz mv ./apache-flume-1.9.0-bin/ /usr/local/flume &#xff08;2&#xff09;配置 cd /usr/local/flume/conf cp ./flume-env.sh.template…...

环境配置:Ubuntu18.04 ROS Melodic安装

前言 不同版本的Ubuntu与ROS存在对应关系。 ROS作为目前最受欢迎的机器人操作系统&#xff0c;其核心代码采用C编写&#xff0c;并以BSD许可发布。ROS起源于2007年&#xff0c;是由斯坦福大学与机器人技术公司Willow Garage合作的Switchyard项目。2012年&#xff0c;ROS团队从…...

2024.2.7-8 寒假训练记录(21)

文章目录 洛谷P3193 [HNOI2008] GT考试ATC abc339E Smooth SubsequenceATC abc339F Product Equality 洛谷P3193 [HNOI2008] GT考试 题目链接 KMPdp矩阵快速幂 还没有理解得很清楚&#xff0c;主要是对KMP理解还不够深刻 #include <bits/stdc.h>using namespace std;…...

C++ pair 的使用

pair的作用 C 中的 std::pair 是标准模板库 (STL) 提供的一个容器&#xff0c;它能够存储两个不同类型的数据作为一个整体&#xff0c;其中first&#xff1a;访问 pair 的第一个元素。second&#xff1a;访问 pair 的第二个元素。 int main() {pair<string, int> p;//通…...

AAAI 2024 | Adobe提出全新上下文提示学习框架CoPL,高效提升下游性能

论文题目&#xff1a;CoPL: Contextual Prompt Learning for Vision-Language Understanding 论文链接&#xff1a;https://arxiv.org/abs/2307.00910 提示学习&#xff08;Prompt Learning&#xff09;在近几年的快速发展&#xff0c;激活了以Transformer为基础的大型语言模型…...

Arcgis使用过程中常见问题解决方法

Arcgis无法连接数据库/数据库连接或创建失败解决方法 最近在使用arcgis过程中出现无法连接数据库或者是无法创建数据库。连接到数据库失败&#xff1b;无法创建新的数据库&#xff0c;权限被拒绝&#xff08;如下图&#xff09;。 出现这个原因是你所用的电脑系统文件dao360.…...

office文件转pdf在线预览

一、工具类 package com.sby.utils;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Locale;import com.aspose.cel…...

设计模式2-对象池模式

对象池模式&#xff0c;Object Pool Pattern&#xff0c;当你的应用程序需要频繁创建和销毁某种资源&#xff08;比如数据库连接、线程、socket连接等&#xff09;时&#xff0c;Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中&#xff0c;以便在…...

Oracle笔记-为表空间新增磁盘(ORA-01691)

如下报错&#xff1a; 原因是Oracle表空间满了&#xff0c;最好是新增一个存储盘。 #查XXX命名空间目前占用了多大的空间 select FILE_NAME,BYTES/1024/1024 from dba_data_files where tablespace_name XXXX #这里的FILE_NAME能查到DBF的存储位置#将对应的datafile设置为30g…...

【专业技术】高效并行分布式深度学习策略,助力模型训练与量化

尊敬的客户&#xff0c;您好&#xff01;我们是一家专注于提供高效深度学习解决方案的专业团队&#xff0c;为您提供并行分布式策略、高效精调策略、大模型无损量化和高性能推理服务。 我们的服务包括&#xff1a; 并行分布式策略&#xff1a;我们的Trainer封装支持多种并行配…...

力扣-137. 只出现一次的数字 II

文章目录 力扣题目代码 力扣题目 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1&#xff1a;…...

Rust 格式化输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、format! 宏二、fmt::Debug三、fmt::Display四、? 操作符 循环打印 前言 Rust学习系列-本文根据教程学习Rust的格式化输出&#xff0c;包括fmt::Debug&…...

c#进程(Process)常用方法

在C#中&#xff0c;Process类提供了一系列用于操作进程的常用方法&#xff0c;以下是其中一些常用的方法&#xff1a; Start()&#xff1a;启动一个新的进程。 Process.Start("notepad.exe");Kill()&#xff1a;终止进程。 Process.GetProcessesByName("note…...

Vue源码系列讲解——虚拟DOM篇【三】(更新子节点)

1. 前言 在上一篇文章中&#xff0c;我们了解了Vue中的patch过程&#xff0c;即DOM-Diff算法。并且知道了在patch过程中基本会干三件事&#xff0c;分别是&#xff1a;创建节点&#xff0c;删除节点和更新节点。创建节点和删除节点都比较简单&#xff0c;而更新节点因为要处理…...

一个设备内存2M,一个1G大小的文件,这个文件有若干行,输出其中的带有hello的行以及行数

第一种 linux上的awk命令&#xff1a; awk {if($1 "113.111.211.224"){print $0}} temp.log 第二种&#xff1a;PHP程序yield &#xff0c;和awk这个命令用的时间差不多一样&#xff0c;效率是很高的 $file __DIR__."/temp.log";foreach(readfilecong…...

json模块(高维数据的存储与读取)

json模块是 Python 标准库中的一个模块&#xff0c;用于处理 JSON&#xff08;JavaScript Object Notation&#xff09;格式的数据。JSON是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。模块提供了在 Python 中进行 JSON 编码&…...

ONLYOFFICE文档8.0新功能浅探

ONLYOFFICE文档8.0新功能浅探 上个月末这个月初的几天&#xff0c;ONLYOFFICE版本更新了&#xff01;更新到了一个比较整的大的版本号&#xff0c;8.0版本&#xff0c;看来这个生产力工具的升级速度基本上能保持每年两个版本号的速度&#xff0c;还是很快的&#xff0c;一般来…...

在vscode 中配置 pyside6 环境

在vscode中编写pyside环境配置 start 记录一下在 vscode 中编写 pyside6 程序&#xff0c;环境如何配置。 前提 请自行安装好 python。请自行安装好 vscode。安装 vscode 插件 Python&#xff0c;PYQT Integration。 配置环境 1.借助 pip 安装我们的pyside6 pip install…...

C语言:月份缩写

题目描述 从一月份到十二月的英文全称依次是&#xff1a;“January”,“February”,“March”,“April”,“May”,“June”,“July”,“August”,“September”,“October”,“November”,“December” 对应的缩写依次是&#xff1a;“Jan.”,“Feb.”,“Mar.”,“Apr.”,“Ma…...

AI应用开发与AI Agent开发:小白程序员必备技能,收藏学习迎高薪未来!

本文介绍了AI应用开发和AI Agent开发的核心概念和区别&#xff0c;通过传统后端开发、AI应用开发和AI Agent开发三个场景的对比&#xff0c;阐述了AI技术如何赋能产品和服务。AI应用开发是将大模型能力嵌入产品&#xff0c;而AI Agent开发则是让大模型自主完成任务。文章还结合…...

5分钟实现PNG/JPG到SVG的终极转换:vectorizer矢量化工具完全指南

5分钟实现PNG/JPG到SVG的终极转换&#xff1a;vectorizer矢量化工具完全指南 【免费下载链接】vectorizer Potrace based multi-colored raster to vector tracer. Inputs PNG/JPG returns SVG 项目地址: https://gitcode.com/gh_mirrors/ve/vectorizer vectorizer是一个…...

性价比高的AI应用厂家

核心结论&#xff1a; 当前市面上AI应用厂商众多&#xff0c;但真正能做到“高性价比”的&#xff0c;必须同时满足三个条件&#xff1a;功能覆盖企业核心痛点&#xff08;管理、销售、运营&#xff09;、落地效果可量化&#xff08;降本增效有数据支撑&#xff09;、成本可控&…...

AI驱动的工业预测性维护技术实践:AI驱动的预测性维护系统通过多传感器融合(振动、温度、电流等)实时监测设备健康状态,结合TSN网络实现毫秒级数据传输

标签:预测性维护 PHM 工业AI 振动分析 TSN 设备管理 引言:设备算命先生的时代来了 “老张,你这台风机轴承怕是撑不过两周了。” 如果有个"设备算命先生"能掐指一算就说出这句话,工厂的设备经理们大概会把他供起来。但在2024年,这个"算命先生"真的出…...

终极分子绘图工具Ketcher:免费在线化学结构编辑器完整指南

终极分子绘图工具Ketcher&#xff1a;免费在线化学结构编辑器完整指南 【免费下载链接】ketcher Web-based molecule sketcher 项目地址: https://gitcode.com/gh_mirrors/ke/ketcher 还在为复杂的化学结构绘图而烦恼吗&#xff1f;传统绘图工具操作繁琐、格式兼容性差、…...

鲲鹏超节点系统应用创新竞争力

鲲鹏超节点通过灵衢互联&#xff0c;打破传统的服务器边界&#xff0c;实现以数据为中心的全互联架构&#xff0c;为AI infra而生&#xff0c;具备大带宽、低时延、统一编址、内存语义、内存借用、内存共享、对等互联等关键能力&#xff0c;灵衢软件全面开源开放&#xff0c;让…...

为Hermes Agent配置自定义Provider指向Taotoken聚合服务的操作方法

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为Hermes Agent配置自定义Provider指向Taotoken聚合服务的操作方法 Hermes Agent 是一个功能强大的AI代理框架&#xff0c;它支持通…...

【信息科学与工程学】【制造工程】【通信工程】第一百零一篇 2nm 200Tbps+核心交换机全尺度参数宇宙构建框架05

围绕芯片、单板、交换网卡等层级,重点扩展“信息处理”中的“内存/存储器”子系统相关参数,并覆盖其他关键方面。 衬底、互连、介质,但光刻胶、清洗液、研磨液、封装胶、键合线、TIM材料、探针卡、载带、保护涂层、清洗溶剂、掺杂剂、气体、抗反射涂层、对准标记、硅化物、…...

3大核心优势:为什么GanttProject能让你秒懂项目管理

3大核心优势&#xff1a;为什么GanttProject能让你秒懂项目管理 【免费下载链接】ganttproject Official GanttProject repository. 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 你是否曾经面对复杂的项目计划感到无从下手&#xff1f;GanttProject这款免…...

ARM Cortex-M位带操作:从原理到实战,实现GPIO原子级高效控制

1. 项目概述&#xff1a;从“点灯”到“位带”&#xff0c;一次底层效率的跃迁如果你是从51单片机或者Arduino这类平台转战到ARM Cortex-M系列微控制器&#xff08;比如STM32&#xff09;的开发者&#xff0c;在点亮第一个LED时&#xff0c;可能会感到一丝“别扭”。在51单片机…...