mirror of
https://github.com/itdoginfo/allow-domains.git
synced 2025-09-02 10:40:14 +00:00
commit
c332462149
4 changed files with 57 additions and 4 deletions
7
.github/workflows/create-lists.yml
vendored
7
.github/workflows/create-lists.yml
vendored
|
@ -30,7 +30,8 @@ jobs:
|
||||||
-v ${{ github.workspace }}/Categories:/app/Categories \
|
-v ${{ github.workspace }}/Categories:/app/Categories \
|
||||||
-v ${{ github.workspace }}/Services:/app/Services \
|
-v ${{ github.workspace }}/Services:/app/Services \
|
||||||
-v ${{ github.workspace }}/SRS:/app/SRS \
|
-v ${{ github.workspace }}/SRS:/app/SRS \
|
||||||
itdoginfo/compilesrs:0.1.4
|
-v ${{ github.workspace }}/DAT:/app/DAT \
|
||||||
|
itdoginfo/compilesrs:0.1.5
|
||||||
|
|
||||||
- name: Check Russia/inside-dnsmasq-ipset
|
- name: Check Russia/inside-dnsmasq-ipset
|
||||||
uses: itdoginfo/dnsmasq-action@0.1
|
uses: itdoginfo/dnsmasq-action@0.1
|
||||||
|
@ -78,5 +79,7 @@ jobs:
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: softprops/action-gh-release@v2.1.0
|
uses: softprops/action-gh-release@v2.1.0
|
||||||
with:
|
with:
|
||||||
files: "${{ github.workspace }}/SRS/*.srs"
|
files: |
|
||||||
|
"${{ github.workspace }}/SRS/*.srs"
|
||||||
|
"${{ github.workspace }}/DAT/*.dat"
|
||||||
tag_name: ${{ env.TAG_NAME }}
|
tag_name: ${{ env.TAG_NAME }}
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@ uablacklist-domains.lst
|
||||||
zaboronahelp-domains.lst
|
zaboronahelp-domains.lst
|
||||||
SRS
|
SRS
|
||||||
JSON
|
JSON
|
||||||
|
DAT
|
|
@ -1,9 +1,18 @@
|
||||||
FROM ghcr.io/sagernet/sing-box:v1.10.7 AS sing-box
|
FROM ghcr.io/sagernet/sing-box:v1.10.7 AS sing-box
|
||||||
|
|
||||||
|
FROM golang:1.22.12-alpine3.21 AS go-builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go install -ldflags="-s -w" \
|
||||||
|
github.com/v2fly/domain-list-community@20250207120917
|
||||||
|
|
||||||
FROM python:3.10.16-alpine3.21
|
FROM python:3.10.16-alpine3.21
|
||||||
|
|
||||||
COPY --from=sing-box /usr/local/bin/sing-box /bin/sing-box
|
COPY --from=sing-box /usr/local/bin/sing-box /bin/sing-box
|
||||||
|
|
||||||
|
COPY --from=go-builder /go/bin/domain-list-community /bin/domain-list-community
|
||||||
|
|
||||||
RUN pip install --no-cache-dir tldextract
|
RUN pip install --no-cache-dir tldextract
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
40
convert.py
40
convert.py
|
@ -306,6 +306,40 @@ def generate_srs_subnets(input_file, output_json_directory='JSON', compiled_outp
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"Compile error {output_file_path}: {e}")
|
print(f"Compile error {output_file_path}: {e}")
|
||||||
|
|
||||||
|
def prepare_dat_domains(domains_or_dirs, output_name):
|
||||||
|
output_lists_directory = 'geosite_data'
|
||||||
|
|
||||||
|
os.makedirs(output_lists_directory, exist_ok=True)
|
||||||
|
|
||||||
|
extracted_domains = []
|
||||||
|
|
||||||
|
if all(os.path.isdir(d) for d in domains_or_dirs):
|
||||||
|
for directory in domains_or_dirs:
|
||||||
|
for filename in os.listdir(directory):
|
||||||
|
file_path = os.path.join(directory, filename)
|
||||||
|
|
||||||
|
if os.path.isfile(file_path):
|
||||||
|
with open(file_path, 'r', encoding='utf-8') as file:
|
||||||
|
attribute = os.path.splitext(filename)[0]
|
||||||
|
extracted_domains.extend(f"{line.strip()} @{attribute}" for line in file if line.strip())
|
||||||
|
else:
|
||||||
|
extracted_domains = domains_or_dirs
|
||||||
|
|
||||||
|
output_file_path = os.path.join(output_lists_directory, output_name)
|
||||||
|
with open(output_file_path, 'w', encoding='utf-8') as file:
|
||||||
|
file.writelines(f"{name}\n" for name in extracted_domains)
|
||||||
|
|
||||||
|
def generate_dat_domains(data_path='geosite_data', output_name='geosite.dat', output_directory='DAT'):
|
||||||
|
os.makedirs(output_directory, exist_ok=True)
|
||||||
|
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
["domain-list-community", f"-datapath={data_path}", f"-outputname={output_name}", f"-outputdir={output_directory}"],
|
||||||
|
check=True
|
||||||
|
)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"Compile error geosite.dat: {e}")
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Russia inside
|
# Russia inside
|
||||||
Path("Russia").mkdir(parents=True, exist_ok=True)
|
Path("Russia").mkdir(parents=True, exist_ok=True)
|
||||||
|
@ -363,3 +397,9 @@ if __name__ == '__main__':
|
||||||
generate_srs_subnets(DiscordSubnets)
|
generate_srs_subnets(DiscordSubnets)
|
||||||
generate_srs_subnets(TwitterSubnets)
|
generate_srs_subnets(TwitterSubnets)
|
||||||
generate_srs_subnets(MetaSubnets)
|
generate_srs_subnets(MetaSubnets)
|
||||||
|
|
||||||
|
# Xray domains
|
||||||
|
prepare_dat_domains(directories, 'russia-inside')
|
||||||
|
prepare_dat_domains(russia_outside, 'russia-outside')
|
||||||
|
prepare_dat_domains(ukraine_inside, 'ukraine-inside')
|
||||||
|
generate_dat_domains()
|
Loading…
Add table
Reference in a new issue