Wsparcie dla formatu uBlacklist & refaktor Makefile (#5)
Co-authored-by: Wiktor <> Reviewed-on: #5
This commit is contained in:
		
							parent
							
								
									ca86640d20
								
							
						
					
					
						commit
						11a1c14155
					
				
							
								
								
									
										17
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,12 +1,23 @@ | |||||||
| CONVERTER = python3 src/converter.py | CONVERTER = python3 src/converter.py | ||||||
|  | BLOCKLISTS = seo-nonsense reflink-spam satire mirror | ||||||
|  | TARGET_FORMATS = adguard ublacklist | ||||||
| 
 | 
 | ||||||
| dist/seo-nonsense/adguard.txt:: src/seo-source.json | TARGETS = $(foreach blocklist, $(BLOCKLISTS), $(foreach targetformat, $(TARGET_FORMATS), dist/$(blocklist)/$(targetformat).txt)) | ||||||
| 	$(CONVERTER) --inputfile src/seo-source.json --targetformat adguard --outputfile dist/seo-nonsense/adguard.txt |  | ||||||
| 
 | 
 | ||||||
| build: dist/seo-nonsense/adguard.txt | build: $(TARGETS) | ||||||
| 
 | 
 | ||||||
|  | dist/%/adguard.txt: src/%-source.json | ||||||
|  | 	mkdir -p dist/$* | ||||||
|  | 	$(CONVERTER) --inputfile src/$*-source.json --targetformat adguard --outputfile $@ | ||||||
|  | 
 | ||||||
|  | dist/%/ublacklist.txt: src/%-source.json | ||||||
|  | 	mkdir -p dist/$* | ||||||
|  | 	$(CONVERTER) --inputfile src/$*-source.json --targetformat ublacklist --outputfile $@ | ||||||
| 
 | 
 | ||||||
| clean: | clean: | ||||||
| 	rm -rf dist/* | 	rm -rf dist/* | ||||||
| 
 | 
 | ||||||
| all: build | all: build | ||||||
|  | 
 | ||||||
|  | .PHONY: build clean all | ||||||
|  | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								dist/mirror/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/mirror/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | ! Blocking list automatically generated at 2025-05-25 19:55:20 UTC+0000 | ||||||
|  | ! Created with ❤️ by internet-czas-dzialac.pl | ||||||
							
								
								
									
										2
									
								
								dist/mirror/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/mirror/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | # Blocking list automatically generated at 2025-05-25 19:55:20 UTC+0000 | ||||||
|  | # Created with ❤️ by internet-czas-dzialac.pl | ||||||
							
								
								
									
										2
									
								
								dist/reflink-spam/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/reflink-spam/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | ! Blocking list automatically generated at 2025-05-25 19:55:22 UTC+0000 | ||||||
|  | ! Created with ❤️ by internet-czas-dzialac.pl | ||||||
							
								
								
									
										2
									
								
								dist/reflink-spam/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/reflink-spam/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | # Blocking list automatically generated at 2025-05-25 19:55:22 UTC+0000 | ||||||
|  | # Created with ❤️ by internet-czas-dzialac.pl | ||||||
							
								
								
									
										2
									
								
								dist/satire/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/satire/adguard.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | ! Blocking list automatically generated at 2025-05-25 19:55:24 UTC+0000 | ||||||
|  | ! Created with ❤️ by internet-czas-dzialac.pl | ||||||
							
								
								
									
										2
									
								
								dist/satire/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/satire/ublacklist.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | # Blocking list automatically generated at 2025-05-25 19:55:24 UTC+0000 | ||||||
|  | # Created with ❤️ by internet-czas-dzialac.pl | ||||||
| @ -52,7 +52,7 @@ def parse_arguments() -> argparse.Namespace: | |||||||
|         "--targetformat", |         "--targetformat", | ||||||
|         required=True, |         required=True, | ||||||
|         metavar="TARGET_FORMAT", |         metavar="TARGET_FORMAT", | ||||||
|         help="Target output format (e.g., adguard)", |         help="Target output format (supported formats: adguard, ublacklist)", | ||||||
|     ) |     ) | ||||||
|     parser.add_argument( |     parser.add_argument( | ||||||
|         "--outputfile", |         "--outputfile", | ||||||
| @ -76,6 +76,8 @@ def convert(data: dict, last_modified: datetime, target_format: str) -> str: | |||||||
|     match target_format: |     match target_format: | ||||||
|         case "adguard": |         case "adguard": | ||||||
|             return adguard_conversion(last_modified, data) |             return adguard_conversion(last_modified, data) | ||||||
|  |         case "ublacklist": | ||||||
|  |             return ublacklist_conversion(last_modified, data) | ||||||
|         case _: |         case _: | ||||||
|             raise UnsupportedTargetFormatError |             raise UnsupportedTargetFormatError | ||||||
| 
 | 
 | ||||||
| @ -97,6 +99,23 @@ def adguard_conversion(last_modified: datetime, data: dict) -> list[str]: | |||||||
|     return "\n".join(output) |     return "\n".join(output) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def ublacklist_conversion(last_modified: datetime, data: dict) -> list[str]: | ||||||
|  |     header_lines: list[str] = [ | ||||||
|  |         f"# Blocking list automatically generated at {last_modified.strftime('%Y-%m-%d %H:%M:%S %Z%z')}", | ||||||
|  |         "# Created with ❤️ by internet-czas-dzialac.pl", | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     output: list[str] = list(header_lines) | ||||||
|  | 
 | ||||||
|  |     for entry in data["domains"]: | ||||||
|  |         fqdn = entry["fqdn"] | ||||||
|  |         if entry.get("exclude", False): | ||||||
|  |             continue | ||||||
|  |         output.append(f"*://*.{fqdn}/*") | ||||||
|  | 
 | ||||||
|  |     return "\n".join(output) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def dump_output(data: str, output_file: str) -> None: | def dump_output(data: str, output_file: str) -> None: | ||||||
|     try: |     try: | ||||||
|         directory = os.path.dirname(output_file) |         directory = os.path.dirname(output_file) | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								src/mirror-source.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/mirror-source.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |     "domains": [] | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								src/reflink-spam-source.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/reflink-spam-source.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |     "domains": [] | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								src/satire-source.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/satire-source.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |     "domains": [] | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user