diff --git a/README.md b/README.md index acce945..e41585b 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,12 @@ This python script scrapes the page [Magyarországi VHF és UHF rádióamatőr For the maps, see [the generated map on google maps](https://www.google.com/maps/d/edit?mid=1pecdCCsx2C0F0qW0n-bFy2ZnTRufJyo&usp=sharing) +To run: +``` +python3 -m virtualenv env +source env/bin/activate +pip3 install -r requirements.txt +python3 rep_scraper +``` + Made by HA7DN, 2023 diff --git a/rep_scraper/__main__.py b/rep_scraper/__main__.py index 02c0990..66cc1ae 100644 --- a/rep_scraper/__main__.py +++ b/rep_scraper/__main__.py @@ -13,11 +13,12 @@ from scrape import extract_tables from parse_table import parse_table from map_export import export_map -from chirp_export import export_chirp +from chirp_export import export_chirp_old, export_chirp_new if __name__ == '__main__': repeaters = extract_tables(URL_TO_FETCH)[0] repeaters = parse_table(repeaters) export_map(repeaters, 'repeaters.kml', 'Átjátszók') export_map([r for r in repeaters if r.echolink_code], 'echolink.kml', 'EchoLink átjászók') - export_chirp(repeaters, 'repeaters.csv') + export_chirp_old(repeaters) + export_chirp_new(repeaters) diff --git a/rep_scraper/chirp_export.py b/rep_scraper/chirp_export.py index e1541f4..e38a72f 100644 --- a/rep_scraper/chirp_export.py +++ b/rep_scraper/chirp_export.py @@ -7,7 +7,7 @@ def csv_escape(inp: str) -> str: return f'"{inp_repl}"' return inp -def export_chirp(repeaters: List[Repeater], filename: str = "repeaters.csv"): +def export_chirp_old(repeaters: List[Repeater], filename: str = "repeaters_old_chirp.csv"): with open(filename, "w") as csvfile: csvfile.write("Location,Name,Frequency,Duplex,Offset,Tone,rToneFreq,cToneFreq,DtcsCode,DtcsPolarity,Mode,TStep,Skip,Comment,URCALL,RPT1CALL,RPT2CALL,DVCODE,Elt. [kHz]\n") @@ -23,7 +23,7 @@ def export_chirp(repeaters: List[Repeater], filename: str = "repeaters.csv"): rep.ctcss.dl_tone, # cToneFreq - receive tone '023', # DtcsCode 'NN', # DtcsPolarity - 'FM', # Mode + 'NFM', # Mode '5.00', # TStep '', # Skip csv_escape(rep.qth.name.strip()), # Comment @@ -31,3 +31,31 @@ def export_chirp(repeaters: List[Repeater], filename: str = "repeaters.csv"): ]))+'\n') +def export_chirp_new(repeaters: List[Repeater], filename: str = "repeaters_new_chirp.csv"): + with open(filename, "w") as csvfile: + csvfile.write("Location,Name,Frequency,Duplex,Offset,Tone,rToneFreq,cToneFreq,DtcsCode,DtcsPolarity,RxDtcsCode,CrossMode,Mode,TStep,Skip,Power,Comment,URCALL,RPT1CALL,RPT2CALL,DVCODE\n") + + for loc, rep in enumerate(repeaters, 1): + csvfile.write(",".join(map(str, [ + loc, # Location + csv_escape(rep.callsign), # Name + rep.freq.downlink / 1000, # Frequency [MHz] + '-' if rep.freq.offset else 'off', # Duplex + abs(rep.freq.offset) / 1000, # Offset [MHz] + rep.ctcss.mode.value, # Tone + rep.ctcss.ul_tone, # rToneFreq - transmit tone + rep.ctcss.dl_tone, # cToneFreq - receive tone + '023', # DtcsCode + 'NN', # DtcsPolarity + '023', # RxDtCSCode + 'Tone->Tone', # CrossMode + 'NFM', # Mode + '5.00', # TStep + '', # Skip + '5.0W', # Power + csv_escape(rep.qth.name.strip()), # Comment + '', # URCALL + '', # RPT1CALL + '', # RPT2CALL + '', # DVCODE + ]))+'\n')