|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
【原创】网络剪辑版操作2024.11.10最新,含上传和读取
https://bbs.125.la/forum.php?mod=viewthread&tid=14839804
(出处: 精易论坛)
上个帖子开源了我制作的网络剪辑版读写例程
本贴就基于此制作一个简单的留言板功能
特点:无需登录,无需验证码,无需实名,无需搭建服务器,无需内网穿透等等,0基础小白直接把代码复制走就能用!源码编译可用,无需依托任何其他文件
注:大牛请绕道,我也只是个萌新,后面会先讲原理,源码在帖子结尾,没耐心看的可以直接拉到结尾取走源码!
以往论坛上也有一些类似的源码,究其基本原理都是借助一些留言平台,通过post进行留言,读取,实现的留言板操作
例如:
【苏汉UI】无需服务器的留言板,给你的软件加上留言反馈吧
https://bbs.125.la/forum.php?mod=viewthread&tid=14837974
(出处: 精易论坛)
永硕E盘应用模块 实现软件运行次数,在线人数 在线留言(1.1版更新)
https://bbs.125.la/forum.php?mod=viewthread&tid=72129
(出处: 精易论坛)
诸如以上
而本源码使用的平台是网络剪贴板(https://netcut.cn)
这是一个能够上传文本,且完全无需注册登录,支持密码保护,地址完全自定义的开源网站
例如:https://netcut.cn/我爱精易论坛
而最关键的是,这个网站基本没有任何验证,post起来相当的方便快捷,速度块,开发难度小(没做验证不代表不安全,是可以设置密码的)
有了一个方便上传文本的云端平台,我们就可以非常方便的制作留言板了
1.发送留言
发送留言
首先要实现发送留言,因为剪贴板只是一个储存文本的平台,并非像上面举得两个例子一样有现成的留言入口
所以我选择手搓一个
我采用了这样一个格式:
留言板界面里是这样的
[JavaScript] 纯文本查看 复制代码
【——————pgEtOtxoOYneyhbkAKpbzTaizHQEMzbrmzPOgaepTzWjgjijXa——————
留言者:h*h*w*h憨憨叹号h*h*w*h
留言内容:h*h*w*h第114514条留言!h*h*w*h
留言时间:h*h*w*h2020年11月10日17时8分18秒h*h*w*h
IP:h*h*w*h11.451.4.191h*h*w*h
——————pgEtOtxoOYneyhbkAKpbzTaizHQEMzbrmzPOgaepTzWjgjijXa——————】
h*h*w*h是关键字,为了方便后续的文本分割和取出
后续取留言时只需要进行文本处理,取出所有数据存进数组里,再循环插入列表框即可
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , ) 如果真 (删首尾空 (原文本 ) = “”)返回 ()文本_取中间_批量_正则方式 (原文本, “【”, “】”, 全_留言初始数组, , , , , 真, 真) 文本_取中间_批量_正则方式 (原文本, “留言者:h*h*w*h”, “h*h*w*h”, 全_留言姓名数组, , , , , 假, 假) 文本_取中间_批量_正则方式 (原文本, “留言内容:h*h*w*h”, “h*h*w*h”, 全_留言内容数组, , , , , 假, 假) 文本_取中间_批量_正则方式 (原文本, “留言时间:h*h*w*h”, “h*h*w*h”, 全_留言时间数组, , , , , 假, 假) 文本_取中间_批量_正则方式 (原文本, “IP:h*h*w*h”, “h*h*w*h”, 全_留言IP数组, , , , , 假, 假) 文本_取中间_批量_正则方式 (原文本, “【——————”, “——————”, 全_留言ID数组, , , , , 假, 假) 计次循环首 (取数组成员数 (全_留言初始数组 ), i )索引 = 超级列表框. 插入表项 (-1, 全_留言姓名数组 [i ], , , , ) [i ] 超级列表框. 置标题 (索引, 1, 全_留言时间数组 ) 计次循环尾 ()
如此这般,上传留言和读取留言就做好了
2.删除留言
删除留言
制作删除留言,由于我们是自己手搓的格式,通过文本处理转换成留言条目
那么难点就在于如何才能在剪辑版中n行数据中,精确地删除掉某个留言涵盖的某几行
我的思路如下:
由于刚才步骤1已经通过命令取出了“全_留言ID数组”,里面应该涵盖了若干个留言ID
步骤1中还进行了列表框插入操作,所以我们可以得知:
全_留言ID数组 [超级列表框.现行选中项 + 1] 应该是和 超级列表框.现行选中项 相对应的
也就是说当我们选中超级列表框第一行的时候,这一行对应的ID就应该是 全_留言ID数组 [超级列表框.现行选中项 + 1]
取出了留言ID之后,一切都变得简单起来
由于前文提到,留言ID是50个随机大小写字母组成的,能够确保其唯一性
只要知道了ID,就能准确知道到底是哪一条留言
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , ) 文本_取中间_批量_正则方式 (原文本, “【——————” + 留言ID + “——————”, “——————” + 留言ID + “——————】”, 临时数组, , , , , 真, 真) 剪辑版_上传文本 (全_用作留言板的剪辑版名, 子文本替换 (原文本, 临时数组 [1], “”, , , 真), 全_剪辑版密码, 1)
我们将取出的内容存在临时数组中,同时再将取出的留言作为欲被替换的子文本,原文本作为欲被替换的文本,用作替换的子文本设置为空
如此一来我们便将原文本中,我们指定留言ID的那条留言(也就是要删除的留言),替换成了空文本
最后再将文本覆盖上传回去,就实现了留言的删除
3.修改留言
修改留言
修改留言的原理和步骤2删除留言的原理完全一样
区别在于最后替换时
删除留言是将指定ID的留言替换成了空内容
而修改留言则是将指定ID的留言内容替换为了新的内容,如此实现了留言的修改
原文本 = 剪辑版_读取文本 (全_用作留言板的剪辑版名, 全_剪辑版密码, , ) 文本_取中间_批量_正则方式 (原文本, “【——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1 ] + “——————”, “——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1 ] + “——————】”, 临时数组1, , , , , 真, 真) 修改后文本 = “【——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1 ] + “——————” + #换行符 + “留言者:h*h*w*h” + 全_留言姓名数组 [超级列表框.现行选中项 + 1 ] + “h*h*w*h” + #换行符 + “留言内容:h*h*w*h” + 编辑框_留言内容_管理端.内容 + “h*h*w*h” + #换行符 + “留言时间:h*h*w*h” + 全_留言时间数组 [超级列表框.现行选中项 + 1 ] + “h*h*w*h” + #换行符 + “——————” + 全_留言ID数组 [超级列表框.现行选中项 + 1 ] + “——————】” 原文本 = 子文本替换 (原文本, 临时数组1 [1 ], 修改后文本, , , 真) 剪辑版_上传文本 (全_用作留言板的剪辑版名, 原文本, 全_剪辑版密码, 1 )
4.清空留言板
清除全部
清空留言板并没有用到什么特殊的机制,我选择使用了我制作的剪贴板模块中的一条命令
剪辑版_删除(剪辑版名,密码)
这条命令会直接注销剪辑版,清空里面的所有内容
5.输入字符限制
字符限制
如果留言过长,我们处理文本的时候很可能直接卡死,或者剪贴板被占满
为了防止这种刷屏的情况发生,字符限制就是必不可少的了
我模仿精易论坛发帖时标题部分的逻辑:还可输入 n 个字符
简单的实现了字符限制以及显示,让其在超过指定字符数时变红,未超过时则是不显眼的灰色
透明标签_字符数提醒.标题 = “还可输入 ” + 到文本 (400 - 取文本长度 (编辑框_留言内容.内容 )) + “ 字符”如果 (400 - 取文本长度 (编辑框_留言内容.内容 ) < 0 )透明标签_字符数提醒.文本颜色 = #红色 透明标签_字符数提醒.文本颜色 = #灰色
|
-
网络剪贴板界面
|