ludoux / ngapost2md

艾泽拉斯国家地理论坛/NGA玩家社区/NGA单帖爬虫/牛国安一键存贴,不怕冲水
MIT License
97 stars 10 forks source link

Convert: 配置文件格式由ini更换为toml #91

Closed oarinv closed 1 month ago

oarinv commented 5 months ago

配置文件格式由ini更换为toml,更便捷的注释,更好的可读性

ludoux commented 5 months ago

感谢pr。但这个后续我会可能做一些修改再合并,最近比较忙就先不合并先😂。我解释一下我的想法

oarinv commented 5 months ago

1.assets/config.toml 中的字段名我认为可以简写,通过注释来辨别,不过确实要统一代码风格,toml 组件,也可以做到导出配置,后续会完善导出、更新配置功能。

2.nga/nga.go 中的保存帖子时的读取写入配置,例如process.ini,也可以改为toml格式,将process.toml读取写入操作统一放到nga/read_cfg.go中,nga.go只是起到一个调用,这个有待考虑。

3.user-agent ,这个是方便修改配置,每次使用时还需要输入一长串ua,ua的默认值可以提供多个,随机使用。ua 被网站标记的问题,也可以通过自定义输入ua,修改配置解决。

ludoux commented 5 months ago

确实。当时选用ini主要是为了方便。假如迁移到toml不会缩减功能的话,是一种正向优化


From: oarinv @.> Sent: Wednesday, March 6, 2024 10:00:18 AM To: ludoux/ngapost2md @.> Cc: Lu Chang @.>; Comment @.> Subject: Re: [ludoux/ngapost2md] Convert: 配置文件格式由ini更换为toml (PR #91)

确实需要完善一下1.assets/config.toml 中的字段名我认为可以简写,通过注释来辨别,不过确实要统一代码风格,toml 组件,也可以做到导出配置,后续会完善导出、更新配置功能。2.nga/nga.go 中的保存帖子时的读取写入配置,例如process.ini,也可以改为toml格式,将process.toml读取写入操作统一放到nga/read_cfg.go中,nga.go只是起到一个调用,这个有待考虑。3.user-agent ,这个是方便修改配置,每次使用时还需要输入一长串ua,ua的默认值可以提供多个,随机使用。ua 被网站标记的问题,也可以通过自定义输入ua,修改配置解决。09:12, 2024年3月6日, Lu Chang @.***>: 感谢pr。但这个后续我会可能做一些修改再合并,最近比较忙就先不合并先😂。我解释一下我的想法

assets/config.toml 中的字段名我觉得要和 ini 文件保持一样(包括大小写),最好可以直接改文件后缀名的那种程度。因为程序升级需要做配置文件迁移(比如 GetConfigAutoUpdate),假如字段名不同还需要保留 ini 组件,做一次读入写出,比较麻烦。最好就算直接用 os 改名的方式,来做到原本 ini 配置文件内容也可以被 toml 组件识别。话说这个 toml 组件可以做到再把配置信息导出保存成文件不。 config.go 文件也主要是实现上面的自动更新和版本迁移的内容,现在这样子直接删除相当于就少功能了。 gen-config-file 我认为还是要保留的,因为假如用户误删了配置文件,没有这个功能的话就只能来 repo 重新下载配置文件了 user-agent 不提供默认值是为了提高门槛,而且怕提供了默认值,然后这个 ua 被网站那边标记了

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***> -- Sent from Yandex Mail for mobile

— Reply to this email directly, view it on GitHubhttps://github.com/ludoux/ngapost2md/pull/91#issuecomment-1979941832, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADGWKTAPV5PBZ4RW7EB742LYWZ2DFAVCNFSM6AAAAABEHQSQC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZZHE2DCOBTGI. You are receiving this because you commented.Message ID: @.***>

ludoux commented 5 months ago

多谢 :) 我后续有空的时候会合并和处理的,最近确实比较忙,我自己的修改都没合并😂

ludoux commented 1 month ago

go-toml 只能做到 Unmarshal (fixed typo),是不是意味着假如后续更添配置项,那么旧项和新项都要放在大包含的结构体内,并且再根据 version 来做到旧项到新项的迁移?然后导出的时候又要有一个仅最新版本的结构体来进行 Marshal。选择器功能 dasel 有提供,但是它又不支持保存文件。所以假如要按现在的 ini 代码逻辑的话,既要 go-toml 又要 dasel,感觉…没有比现在 ini 文件有啥提升(代码上反而变复杂了)

oarinv commented 1 month ago

toml 确实不如ini通用,如果只是提升一点易读、易用,反而造成代码逻辑复杂,确实有点本末倒置了,目前来说还是ini格式通用些。