Re: [建议] 存以/搜寻的关键字群回系统待下次登入用

楼主: IepID (Iep Iweidieng)   2024-05-13 16:23:31
※ 引述《if4 (if Chen)》之铭言:
: [略……]
: 建议下次登入,再把 if 回存,方便使用
要让此功能方便实用的话,只将输入框历史储存起来是不够的。
一、目前 PttBBS 的输入框是无论输入为何,都会将输入文字存进输入历史,
所以如果要重复使用 2 项或更多项的输入纪录时,就必须愈按愈多次 ↑ ,
可能到最后反而比直接输入还不方便。
DreamBBS 有对这部份改进,参考了 bash 的命令历史记录方式,
如果是一字不改地重复使用历史输入项目,就不会存进历史。
※ 引述《if4 (if Chen)》之铭言‧续:
: 因为我认为大多数关键字会是差不多的,所以才有必要回存。
: 这算是强化BBS系统搜寻功能。
二、目前的输入框历史纪录,并没有对不同的输入用途分开储存,
所以会出现搜寻时叫出刚才的推文内容或相反的不方便情况,
甚至会出现推文时叫出刚才编辑的自己甚至(若为站长)他人的个人资料的隐私问题。
只有密码输入、1~2 字符的短输入、等特定情况不会存进历史纪录。
实作上会需要多指定输入框的用途给处理输入框的函式来解决这个问题,
但是要在程式码中找出所有同一用途的输入框而需要付出一定的心力。
※ 引述《if4 (if Chen)》之铭言‧续:
: 如果相同帐号有不同使用者呢?(我这里是假设某帐号被盗用^^)
: 因为有些人根本不换密码的,密码又很短...我只是假设一下 XD
: 所以我再建议:
: 下次要再度使用要打密码(可以跟帐号不一样)
: 也就是说在这次使用时会问使用者要储存密码
: 等到下次登入按/会确认密码
: 认为多此一举的使用者,可以选择不输入密码
: 因为有些人心中坦荡,不怕心中的秘密泄漏...XD
: 但这服务要做得好...当然也要把各种状况考虑进去
: 可以先做没保护的...视情况斟酌加入...
三、至于历史纪录的密码,当账号被盗时,有其它更隐私的东西需要担心,
比如私人信件与个人资料,比保护搜寻纪录来得重要。
而且懂得设搜寻纪录密码的使用者较不太可能设定弱的账号密码。
用不重要的密码当作重要的密码被破解的防线的设计可说是过于多余。
再来是有关输入历史纪录的密码的接口跳出的时机。
如果没有解决 二、 的问题的话,跳出的时机会是在登入后显示任何长输入框时,
不会只有进行搜寻时。
而不幸的是,很多基于解析终端机接口的第三方 app 需要配合修改才能正常运作,
无论有没有解决 二、 的问题,第三方 app 开发者都必须在程式码中
找出所有会跳出密码接口的输入框,同样需要付出一定的心力。
※ 引述《if4 (if Chen)》之铭言‧续:
: 因为我觉得大部份使用 / 的时候...
: 有很多是打过的...下次登入还能使用...就蛮贴心的...
: 可以办个全站投票调查一下,看我是不是讲真心话...XD
悲观地说,个别人的用前眞实意见不一定会符合众人的多数用前眞实意见,
而众人的多数用前眞实意见不一定会符合众人的多数用后眞实意见。
※ 引述《if4 (if Chen)》之铭言‧续:
: 关键字可以挑剔以使留下来的关键字是最经典的。
四、有关输入框历史纪录的编辑,由于目前的输入框历史纪录项数是有上限的,
为 IH_MAX_ENTRIES(目前定义为 12)
(DreamBBS 与 MapleBBS 3.10-itoc 则是 MAXLASTCMD,目前皆定义为 8),
定义的值太小,所以新的纪录会很快地排挤掉旧的纪录,编辑的意义不大。
但从这个想法可以延伸出不同的设计,让使用者可以编辑常用输入,在输入时可以按
特定的按键来叫出(类似于编辑文章时所按的 Esc -数字)而不受历史纪录的干扰。
参考——相关 BBS 的输入框处理函式:
‧ PttBBS(常被各站台采用的 MapleBBS 2 支系 SOB BBS 的分支,
不像 MapleBBS 3 经过 opus、Thor、等 MapleBBS 开发者的大辐度重构,
但又经过 in2、piaip、等开发者的重构与改进而不同于其它 SOB BBS 分支):
‧ getdata() → vgets()(不预先填入字串) → vgets()
‧ getdata_buf() (会预先填入输出缓冲区内已有的字串) → vgetstr()
‧ getdata_str() (会预先填入使用额外的字串引数所指定的字串) → vgetstr()
‧ vgets() → vgetstr() → vgetstring(),后者支援指定自订的按键回呼函式
以及重绘输入框背后的画面的回呼函式,利用自订的资料结构来实作:
https://github.com/ptt/pttbbs/blob/c4f6a2910e/mbbsd/vtuikit.c#L1153-L1459
其中 getdata…() 的使用占多数。
‧ MapleBBS 3.10-itoc(常被各站台采用且说明文件较完善的 MapleBBS 3 分支;
经过 itoc、等开发者参考各个 TANet BBS 支系改进,但已停止主要开发多年):
‧ vget()
https://github.com/xeonchen/maplebbs-itoc/blob/5deda09183/bbs/src/maple/visio.c#L1672-L1999
‧ DreamBBS(梦之大地 BBS 采用的系统,MapleBBS 3 支系 WindTopBBS 3 的分支,
与 MapleBBS 3.10-itoc 的最后共同祖先为 MapleBBS 3.10,但之后的演变历史不同):
‧ vget() → vget_xo(),后者支援指定重绘输入框背后的画面的回呼函式,
利用了 MapleBBS 3 既有的 Xover 选单系统的回呼函式架构来实作:
https://github.com/ccns/dreambbs/blob/d8488428b9/maple/visio.c#L2749-L3212
其中许多原使用 vget() 的函式已转用 vget_xo()。

Links booklink

Contact Us: admin [ a t ] ucptt.com