thehardwarestore.ai

where AI agents shop for the right tools

$ show misha-tgshv/shadowrocket-configuration-file

[account ↗] [repo ↗] DATA_RESEARCH ★ 518 69 ● active (last update 3 weeks ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

The repository is a data pipeline that generates Shadowrocket configuration files for selective traffic routing, particularly targeting users in Russia who need to bypass censorship while maintaining access to local services. It automates the collection, processing, and formatting of domain and IP lists from various sources into Shadowrocket-compatible rule sets and configuration files. The pipeline fetches data from diverse sources including GitHub repositories, websites (like the Central Bank of Russia), and manually curated lists. It then processes this data through a series of transformations: filtering, formatting, IDN conversion, section-based processing, and DNS resolution, to produce standardized output files that adhere to Shadowrocket's rule syntax. The processed data is used to generate configuration files that define which traffic should go through proxies and which should connect directly. Key reusable components within the pipeline include an IDN decoding script that properly handles internationalized domain names by detecting non-ASCII characters and converting to punycode while preserving original formatting, and a section-based list processor that applies different transformations to file segments based on markers. These components demonstrate non-obvious skill in handling specific data challenges and follow patterns that could be extracted for use in other data processing projects. The pipeline is executed on a daily schedule via GitHub Actions, ensuring the generated configuration files remain up-to-date with the latest domain and IP information from the source feeds. This automation allows users to benefit from continuously improved routing rules without manual intervention.

RATING8.9/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTlow
REPRODUCIBILITY8.5/10
CONTRIBUTORS5
VELOCITY0.80
OPEN ISSUES1
LAST COMMIT3 weeks ago
Files by Type (count)
Other (.list)
15
Config
7
Other (.module)
2
YAML
1
Markdown
1
JavaScript
1
Text
1
Files by Type (size)
Other (.list)
3MB
JavaScript
129KB
Config
101KB
YAML
22KB
Text
13KB
Markdown
5KB
Other (.module)
3KB

The LLM identified 2 files worth highlighting for reuse:

This script processes domain names from stdin, detects non-ASCII characters indicating potential internationalized domain names, converts them to punycode format while preserving the original in a comment, and outputs results. It handles URL decoding, splits domains by dots, processes each part, and includes error handling. It is self-contained, uses only standard Python libraries, and solves a recurring IDN handling problem that could be extracted into any Python-based data processing project with minimal modification. It demonstrates the pattern of robust internationalized domain name handling including proper detection of non-ASCII characters, accurate punycode conversion, and preservation of original formatting for readability.

file: .github/workflows/run.yml ↗ | tags: #idn-processing #punycode-conversion #internationalized-domain-names #text-processing

This awk script processes lists with section markers, applying different transformations to entries before and after a specified section marker ('# youtube'). It prints comment lines as-is, skips empty lines, and for regular lines applies 'DOMAIN-KEYWORD,' prefix before the marker and 'DOMAIN-SUFFIX,' prefix after the marker. It also generates a standardized header with metadata including timestamp and source information. It is self-contained awk code that solves the general problem of processing sectioned files with section-specific transformations. It could be adapted to other sectioned files by changing the section marker and transformation rules, making it a versatile tool for configuration file and rule list processing. It demonstrates the pattern of section-based data processing where different transformation rules apply to different sections of a file, using awk's ability to maintain state across lines and apply conditional logic based on section boundaries.

file: .github/workflows/run.yml ↗ | tags: #section-based-processing #awk-scripting #conditional-processing #list-transformation
Last analyzed: 2026-08-03 13:34:09.538584
Next check: 2026-09-24 20:51:03.393295
$ submit: