• Visit the Chinese site here, or click ‘Switch to Chinese’ at the left sidebar.

Introduction

Recently, I found the process of writing blog posts with Hexo a bit cumbersome, so I wanted to automate it. The workflow automation includes: updating NPM dependencies, writing build scripts to make up for some deficiencies in Hexo, and using GitHub Actions to automatically deploy the site.

When I first started using Hexo, I wasn’t good at reading documentation and preferred following tutorials. After more than a year of using Hexo and over six months of deploying various open-source software, I decided to work on this improvement.

Read more »

Introduction

If we want to store directory structures in a database, which type of database should be used? — Either NoSQL or RDBMS. If we choose NoSQL, we should select one that supports tree structures; if we choose RDBMS, the focus is on table design and query operations.

The key question is: What operations do we need to perform on the directory structure stored in the database? Obviously, these operations essentially mimic file operations in a file system.

  • Operation 1: CRUD operations on single files/directories, such as copying, deleting, or moving a file/directory;
  • Operation 2: Recursively traversing a directory;

Considering these two points is crucial for designing an efficient solution. This article presents solutions for both NoSQL and RDBMS, with a focus on the latter. Additionally, it explores using JSON as a solution.

Read more »

Introduction

AutoBangumi is an “RSS-based fully automated anime tracking and download tool” (hereinafter referred to as AB), which is very suitable for users like me who use both qBittorrent (hereinafter referred to as QB) and Jellyfin. After using AB to track anime for a season, I have gained a deeper understanding of AB, Jellyfin, and concepts such as RSS and scraping. Although AB provides automation, it also increases the complexity of the tracking process, especially when AB encounters issues.

Based on my past experiences with the QB RSS feature and combined with my new understanding, I chose to stop using AB and instead use QB RSS. Although this adds a few more steps for tracking new anime each season, the overall system complexity and resource usage are reduced. Overall, I am satisfied with this change.

Automated Anime Tracking Workflow

flowchart LR
subgraph g1[RSS Subscriber]
a1[AB] ~~~ a2[QB]
end
subgraph g2[RSS Downloader]
b1[AB] ~~~ b2[QB]
end
subgraph g3[torrent Downloader]
c1[QB] ~~~ c3[Transmission]
end
subgraph g4["Post-Download Tasks (Optional)"]
d1[Email Notification] ~~~ d2[Rename Downloaded Videos] ~~~ d3[Make Hard Links]
end

subgraph g5["Jellyfin (Plugins) Scraping"]
e1[Bangumi] ~~~  e2[AniDB] ~~~ e3[TMDB]
end
g1-->g2-->g3-->g4-->g5
Read more »

Introduction

In a previous article, I mentioned that ‘Jellyfin’s scheduled task “Scan Media Library” does not consume resources and can run frequently without issues’. In fact, this statement is not entirely correct. The resource consumption of the task depends on the number of media/files.

Recently, I developed a project to scrape videos while automatically generating NFO files and video posters. In this new video directory, there are up to 2000 files (mostly NFO and poster images, with videos not yet downloaded), organized into four-level subdirectories. However, the CPU usage of the scheduled task has increased significantly, indicating an issue.

After some research, I found that using crontab to periodically call the Jellyfin API is currently the only solution to customize scan frequencies for different media libraries.

Read more »
0%