http://bbs.luaer.cn/read-Lua-tid-861.html
--------------------------------------------------
require
("wx")
-- Lua
5.1+ base64 v3.0 (c) 2009 by Alex Kloss <alexthkloss@web.de
>
-- licensed under the terms of the LGPL2
-- character table
string
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
-- enconding
function enc(data)
return ((data:gsub('.', function(x)
local r,b='',x:byte()
for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
return r;
end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
if (#x < 6) then return '' end
local c=0
for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end
return b:sub(c+1,c+1)
end)..({ '', '==', '=' })[#data%3+1])
end
-- decoding
function dec(data)
return (data:gsub('.', function(x)
if (x == '=') then return '00' end
local r,f='',(b:find(x)-1)
for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
return r;
end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
if (#x ~= 8) then return '' end
local c=0
for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
return string.char(c)
end))
end
-- command line if not called as library
if (arg ~= nil) then
local func = 'enc'
for n,v in ipairs(arg) do
if (n > 0) then
if (v == "-h") then print "base64.lua [-e] [-d] text/data" break
elseif (v == "-e") then func = 'enc'
elseif (v == "-d") then func = 'dec'
else print(_G[func](v)) end
end
end
else
module('base64',package.seeall)
end
function main()
ID_OK_BUTTON = wx:wxNewId()
ID_CLOSE_BUTTON = wx:wxNewId()
ID_ADDBUTTON = wx:wxNewId()
ID_CLEAR_BUTTON = wx:wxNewId()
dialog = wx.wxDialog(wx.NULL, wx.wxID_ANY, "迅雷链接转换工具",
wx.wxDefaultPosition, wx.wxDefaultSize)
local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL)
local nextSizer = wx.wxBoxSizer(wx.wxVERTICAL)
local buttonSizer = wx.wxBoxSizer( wx.wxHORIZONTAL )
multiText = wx.wxTextCtrl(dialog, -1, "", wx.wxDefaultPosition, wx.wxSize(350,80), wx.wxTE_MULTILINE)
multiText2 = wx.wxTextCtrl(dialog, -1, "", wx.wxDefaultPosition, wx.wxSize(350,80), wx.wxTE_MULTILINE)
nextSizer:Add(wx.wxStaticText( dialog, wx.wxID_ANY, "请输入迅雷链接:"))
nextSizer:Add(multiText)
subButton = wx.wxButton( dialog, ID_OK_BUTTON, "转换并复制")
closeButton = wx.wxButton( dialog, ID_CLOSE_BUTTON, "关闭")
clearButton = wx.wxButton( dialog, ID_CLEAR_BUTTON, "清除")
buttonSizer:Add( clearButton, 0, wx.wxALIGN_CENTER + wx.wxRIGHT, 5)
buttonSizer:Add( subButton, 0, wx.wxALIGN_CENTER + wx.wxRIGHT, 5)
buttonSizer:Add( closeButton, 0, wx.wxALIGN_CENTER + wx.wxEXPAND)
nextSizer:Add(wx.wxStaticLine(dialog, wx.wxID_ANY), 0, wx.wxEXPAND + wx.wxBOTTOM + wx.wxTOP, 14)
nextSizer:Add(wx.wxStaticText( dialog, wx.wxID_ANY, "输出"))
nextSizer:Add(multiText2)
nextSizer:Add(wx.wxStaticLine(dialog, wx.wxID_ANY), 0, wx.wxEXPAND + wx.wxBOTTOM + wx.wxTOP, 14)
nextSizer:Add(buttonSizer, 0, wx.wxALIGN_RIGHT)
mainSizer:Add(nextSizer, 0, wx.wxALL, 14)
dialog:SetSizerAndFit(mainSizer)
dialog:Centre()
dialog:Show(true)
subButton:Connect(wx.wxEVT_COMMAND_BUTTON_CLICKED,
function(event)
_, _, str = string.find(multiText:GetValue(), "%s*thunder://(%S+)%s*")
if str ~= nil then
str = dec(str)
multiText2:SetValue(string.sub(str, 3, string.len(str) - 3))
text_data = wx.wxTextDataObject(multiText2:GetValue())
local clipBoard = wx.wxClipboard.Get()
if text_data and clipBoard and clipBoard:Open() then
clipBoard.Get():SetData(text_data)
clipBoard.Get():Flush()
clipBoard.Get():Close()
end
else
wx.wxMessageBox("请输入正确的迅雷链接!","错误", wx.wxOK + wx.wxICON_ERROR)
end
end
)
clearButton:Connect(wx.wxEVT_COMMAND_BUTTON_CLICKED,
function(event)
multiText:SetValue("")
multiText2:SetValue("")
end
)
dialog:Connect(ID_CLOSE_BUTTON, wx.wxEVT_COMMAND_BUTTON_CLICKED,
function(event) dialog:Destroy() end)
dialog:Connect(wx.wxEVT_CLOSE_WINDOW,
function (event)
dialog:Destroy()
event:Skip()
end)
end
main()
wx.wxGetApp():MainLoop()
原理:迅雷专用链接原理及转换
说明:
Base64编码转换是从这里
找到的
剪贴板的操作参考了:saving the clipboard on exit
clipBoard.Get():Flush()是必须的!如果没有,那么关闭这个小工具后剪贴板会被清空
!
写的不好!希望大家多提意见!
分享到:
相关推荐
【链接转换工具】是一种实用软件,它主要用于处理各种类型的下载链接,包括将普通网页链接转换为迅雷专用链接,或者反过来,将迅雷链接转换为普通的HTTP或FTP链接。这样的工具在互联网上下载资源时非常有用,特别是...
为了应对这一挑战,curtain工作室开发了一款名为“迅雷地址转换工具单文件绿色版”的应用软件,它针对用户在下载时遇到的链接限制问题,提供了一个简单有效的解决方案。 迅雷地址转换工具的核心功能是将各种下载...
【下载链接转换工具】是一种实用程序,专门设计用于在不同下载管理器之间转换链接,包括迅雷、快车、旋风以及源链接。这个工具的主要目的是帮助用户克服特定下载器可能无法识别某些链接的问题,或者当用户需要在不同...
它主要功能是将迅雷、电驴(eMule)、旋风等非标准下载链接转换成通用的HTTP链接,使用户能够用任何支持HTTP协议的下载工具或浏览器进行下载,无需依赖特定的客户端软件。 首先,我们来深入了解迅雷下载链接的工作...
3. **迅雷链接转换**:迅雷作为国内广受欢迎的下载工具,其链接在互联网上非常常见。然而,有时我们可能需要在没有迅雷的情况下使用其他工具下载。这时,这款工具可以帮助我们将迅雷链接转换为其他格式。 4. **快车...
在实际使用中,"链接转换工具.exe" 这样的程序提供了简单易用的界面,用户只需输入或粘贴原始的下载链接,选择目标下载方式,点击转换按钮,即可得到转换后的链接。这样,无论你遇到哪种类型的下载链接,都能轻松...
因此,该工具能够帮助用户将迅雷链接转换为其他格式,或者将其他格式的链接转化为迅雷可识别的形式。 压缩包子文件的“迅雷&快车&旋风地址转换工具V3.0.exe”是这个软件的执行文件,版本号为3.0,表明它是经过多次...
因此,"demo链接转换工具"应运而生,帮助用户突破下载工具之间的限制,享受到迅雷带来的高效下载体验。 该工具的工作原理可能涉及到解析和重组下载链接的URL,识别出快车或旋风链接中的特定标识,并将其转换为迅雷...
为此,出现了一款名为“简单实用的专用链接转换工具V1.1”的神器,它旨在帮助用户轻松解决这个问题。 该工具的核心功能在于,它可以将迅雷、快车、旋风等专有链接转换为普通的HTTP或FTP下载地址,让用户无需安装...
标题中的“专用链接转换工具”是指一种软件工具,它的主要功能是将特定的下载链接转换为不同下载器可识别的格式。这些下载器包括迅雷、网际快车(FlashGet)、QQ旋风、RayFile(也称为电驴网络)以及BitComet。这种...
而“专用链接转换工具 V1.1”能够将这种链接转换为通用格式,使得用户无需安装迅雷也能下载相应资源。 接着,我们提到的“网际快车”(FlashGet)是另一款历史悠久的下载管理器,它的JLX链接同样只能在其自身软件中...
下载专用链接转换工具(号称最全) 这款小工具可以将迅雷、快车、QQ旋风、比特彗星、rayflie的专用地址转换成普通网址~如果想下载资源又不想下载那么多专用的下载器的话,这款小工具应该可以帮到你 下载后解压直接...
本文将详细探讨“万能下载链接转换工具”这一特定工具,以及它如何帮助用户转换迅雷、旋风、快车、电驴等不同下载地址。 标题中的“万能下载链接转换工具”暗示了这款软件具有广泛的兼容性,能够处理多种类型的下载...
在IT行业中,专用链接转换工具是一种非常实用的软件,它能够帮助用户将各种特定下载服务的链接转换为通用格式,以便于使用不同的下载管理器进行下载。标题中的“专用链接转换工具,不错啊”表达了作者对这款工具的...
标题中的“迅雷快车Ray纳米万能下载专用链接转换工具”是一款专为解决不同下载平台间链接不兼容问题的软件。它集成了多种下载协议的支持,如迅雷、飞速、纳米以及BT种子,旨在提供一个通用的解决方案,帮助用户在...
现在像QQ旋风、迅雷、快车这些下载工具,都有自己的专用链,专用...今天发布的这款“QQ旋风/迅雷/快车下载地址在线转换工具”的作用就是帮您将QQ旋风、迅雷、快车这些软件所支持的专用链地址转换成普通的HTTP下载地址。
可以将115网盘下载地址转换成 迅雷等常用下载地址 方便下载 好用的工具!!
下载链接转换工具是exe,能转换 thunder:// (迅雷) qqdl:// (QQ旋风) flashget:// (快车) fs2you:// (Rayfile) 和BitComet(比特彗星)