Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文件夹名带上帖子的标题 #21

Closed
xpsair opened this issue Feb 20, 2021 · 9 comments
Closed

文件夹名带上帖子的标题 #21

xpsair opened this issue Feb 20, 2021 · 9 comments
Labels
feature New feature or request

Comments

@xpsair
Copy link

xpsair commented Feb 20, 2021

tid拉取了帖子的内容后,生成的文件夹名只有tid,这样不方便知道拉取的到底是哪个帖,所以建议把文件夹的名字里添加帖子的标题,比如25615215-[其他问题] 关于京东七天无理由退货。

def main():input('press to exit.')之前,加上dir_with_title(),这个函数的定义:

def dir_with_title():
    dir_oldname=str(tid)
    dir_newname=str(tid)+"-"+title
    re.sub('\?', ' ', dir_newname)  # slugify filename if you need
    os.rename(dir_oldname, dir_newname)

不同的操作系统、云盘可能对文件名有一些限制,这里就没有对规范文件名的操作细写了。

@ludoux
Copy link
Owner

ludoux commented Feb 20, 2021 via email

@ludoux
Copy link
Owner

ludoux commented Feb 23, 2021

refer 错了…这个提交不是这个的😂

@oarinv
Copy link
Contributor

oarinv commented May 31, 2023

增加文件名修改配置#55,如果配置为默认,.md文件名为post.md。如果配置中改为True,则会将帖子的标题作为文件名。

@PhiFever
Copy link

我写了个.ps1,在新的release发布前各位老哥可以先凑合着用(放在.exe同级目录下运行就行)。
build_index.ps1生成一个名为index.txt的文件夹-文章名对照表

# 获取当前目录下的文件夹名
$folders = Get-ChildItem -Directory
# Write-Host $folders
$filePath = "index.txt"
$content = ""
# 遍历每个文件夹并执行操作
$folders | ForEach-Object {
    $folderName = $_.Name
    # Write-Host $folderName
    $mdfile = Get-ChildItem -Path $folderName -Filter "*.md" -File
    # Write-Host $mdfile
    $content = $content + $folderName + " " + $mdfile.Name + "`n`n"
}
write-host $content
$content | Out-File -FilePath $filePath -Encoding utf8

update_all.ps1更新所有已经存储的帖子

# 获取当前目录下的文件夹名
$folders = Get-ChildItem -Directory

# 遍历每个文件夹并执行操作
$folders | ForEach-Object {
    $folderName = $_.Name
    # 输出当前文件夹名
    Write-Host "`nfor directory:$folderName"
    Invoke-Expression ".\ngapost2md.exe $folderName"
}

@oarinv
Copy link
Contributor

oarinv commented Jul 28, 2023

已提交相关修改#62
目前仅通过简单测试,确保实现相关功能,该功能默认开启,无需配置。

@ludoux ludoux added the feature New feature or request label Jul 29, 2023
@ludoux ludoux added this to the Ready for 1.4.0 milestone Jul 29, 2023
ludoux added a commit that referenced this issue Jul 31, 2023
@ludoux ludoux closed this as completed Jul 31, 2023
@ludoux
Copy link
Owner

ludoux commented Jul 31, 2023

; [#21]文件夹名是否包含标题。默认值False。修改后仅对全新拉取的tid生效。
use_title_as_folder_name=False
; [#21]Markdown 文件名是否为标题。默认值False。修改后仅对全新拉取的tid生效。
use_title_as_md_file_name=False

use_title_as_folder_name 开启时,文件夹会以 tid-安全标题 格式来命名。否则,以tid来命名。
use_title_as_md_file_name 开启时,md 文件会以 安全标题 格式来命名。否则,以 post.md 来命名。

仅针对新拉取情况下生效。倘若本地已有文件夹,仍按照其命名方式来进行追加。

@PhiFever
Copy link

PhiFever commented Aug 1, 2023

感谢感谢,顺便问一下,请问v1.4.0中每次运行的时候强制覆盖config.ini是有什么特殊的考虑吗?

@ludoux
Copy link
Owner

ludoux commented Aug 1, 2023

感谢感谢,顺便问一下,请问v1.4.0中每次运行的时候强制覆盖config.ini是有什么特殊的考虑吗?

准确来说不能叫“强制覆盖”,只是把旧的配置文件读取后,填充进标准配置里头再重新输出覆盖config.ini文件。配置信息(比如cid uid和个性化配置等)都不会变,只是会影响到注释,和软件不存在的配置项。比如有些用户可能会在注释里备注一些信息,这种情况在1.4.0后就会被覆盖成为原始的注释信息。

这个变动是由于引入了配置文件自动更新而来的,即跨版本更新后,假如配置项有变化,软件会自动将旧版的更新为新版。注释被覆盖这个问题,主要是比较少用户会这么用吧。

更新日志里头提这个,主要是配置文件会被软件修改这个行为,相对来说确实比较奇怪…

@PhiFever
Copy link

PhiFever commented Aug 1, 2023

感谢感谢,顺便问一下,请问v1.4.0中每次运行的时候强制覆盖config.ini是有什么特殊的考虑吗?

准确来说不能叫“强制覆盖”,只是把旧的配置文件读取后,填充进标准配置里头再重新输出覆盖config.ini文件。配置信息(比如cid uid和个性化配置等)都不会变,只是会影响到注释,和软件不存在的配置项。比如有些用户可能会在注释里备注一些信息,这种情况在1.4.0后就会被覆盖成为原始的注释信息。

这个变动是由于引入了配置文件自动更新而来的,即跨版本更新后,假如配置项有变化,软件会自动将旧版的更新为新版。注释被覆盖这个问题,主要是比较少用户会这么用吧。

更新日志里头提这个,主要是配置文件会被软件修改这个行为,相对来说确实比较奇怪…

明白了,既然是这样的话我认为完全可以独立一个专门用于更新配置项的.exe或者.ps1,毕竟这个过程理论上在大版本更新后只需要进行一次。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants