Compare commits

..

41 Commits

Author SHA1 Message Date
5773295f2d UPD btrfs-snapshot script 2025-06-13 12:51:35 +02:00
3430a5c0da Merge branch 'master' of ssh://kuschel.at:21861/public/scripts 2025-06-02 09:59:09 +02:00
09ca2670c1 ADD eduroam arch linux installation 2025-06-02 09:58:50 +02:00
6ffa952c66 ADD eduroam-arch-linux-install info, 2025-05-19 03:54:37 +08:00
dfedf9ff1d UPD wifi-menu doesn't work? 2025-02-09 16:28:45 +01:00
11343252ef Merge branch 'master' of ssh://kuschel.at:21861/public/scripts 2025-01-22 12:44:13 +01:00
3358f3ad91 ADD installation md file from sk0x1234 @github.com for Arch Linux 2025-01-22 12:43:50 +01:00
2bdefb32be ADD installation md file from sk0x1234 @github.com for Arch Linux 2025-01-22 12:43:01 +01:00
8671e5a014 FIX typo in readme 2024-08-26 22:21:00 +02:00
4942e9382e ADD manual for Creating a Bootable Win10 USB drive 2024-08-26 20:03:55 +02:00
3a7dd11a04 FIX addresses 2024-07-25 22:22:04 +02:00
86c5c0e5e7 FIX @Innsbruck,Rum 2024-07-25 00:27:50 +02:00
686dee9536 FIX Schloßteichweg in Klagenfurt, etc. 2024-07-24 22:05:40 +02:00
c484e74f9a DEL unused temp_file 2024-07-24 02:05:14 +02:00
c2f0f9002b FIX deleting temporary gitea file 2024-07-24 01:53:38 +02:00
1838e272f4 FIX creation of temp folder 2024-07-24 01:49:34 +02:00
9bf5b636b9 FIX with temp dir 2024-07-24 01:44:45 +02:00
8f9c0a3ed4 FIX gitea update, problem when there is a directory named gitea exists. 2024-07-24 01:21:59 +02:00
88072138d4 FIX Gussriegelstraße, Laaer-Berg-Straße, Roßauer Lände 2024-07-22 15:35:09 +02:00
a3b2e0cd12 Fix Langenlois PLZ 2024-07-22 14:29:30 +02:00
5f2b03ba83 UPD all post_code and street+city 2024-07-22 05:38:41 +02:00
6a6d48ed40 UPD v.a. Oberösterreich Update 2024-07-20 02:30:12 +02:00
18291ac287 UPD 20240718 2024-07-19 03:18:46 +02:00
178bee4c92 UPD Burgenland komplett 2024-07-19 02:59:49 +02:00
e86e2e4e4c UPD v.a. street, city Burgenland, Stmk. 2024-07-19 02:36:27 +02:00
b8e5904fa7 UPD city, address 2024-07-18 23:31:22 +02:00
78c70459d3 UPD spelling city and street 2024-07-18 03:54:09 +02:00
f772d1d30b UPD city,street corr 2024-07-18 02:42:43 +02:00
5aa276344f UPD street, city replacement, post codes 2024-07-18 00:33:06 +02:00
1ce2f886e1 Describe mariadb database create user and database 2024-07-14 23:53:32 +02:00
3f223b399e ADD .typo_call e.g. OE-7RLJ instead of OE7RLJ 2024-07-04 22:37:08 +02:00
301e80afa7 ADD drop table at start 2024-07-02 00:04:43 +02:00
f435f32bba ADD corr_street 2024-06-30 22:35:54 +02:00
e77006bf76 CHG callbook_address SQL table 2024-06-30 14:05:55 +02:00
7dfbeb3b79 ADD Mürzzuschlag to .post_code 2024-06-25 10:08:11 +02:00
d9a97b8e66 ADD Postal Code, TODO 2024-06-24 01:33:22 +02:00
e0bc13d092 ADD create database (when enough privileges) 2024-06-23 20:47:05 +02:00
3a8032b787 ADD Rufzeichenliste for testing purposes 2024-06-23 19:49:35 +02:00
545f4db35f UPD configuration file config.ini 2024-06-23 19:48:59 +02:00
73a989e4a4 Merge branch 'master' of ssh://kuschel.at:21861/public/scripts 2024-06-23 15:24:03 +02:00
b0f2833662 ADD abspath to the default path for testing 2024-06-23 15:23:57 +02:00
17 changed files with 2016 additions and 47 deletions

1
afu/.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.pdf filter=lfs diff=lfs merge=lfs -text

5
afu/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# Ignore the following files
# Configuration File of callbook, config.ini is created automatically after starting the script
config.ini
# For testing purposes, store this PDF as lfs (large file storage), pls install git-lfs.
!Rufzeichenliste_AT_Stand_20240601.pdf

665
afu/.post_code Normal file
View File

@ -0,0 +1,665 @@
2000 Stockerau|Grillparzerstraße#Stockerau#Grillparzergasse
2000 Stockerau|Grillparzergasse
2000 Stockerau
2102 Bisamberg|Am Kronawett 15/Hagenbr#Hagenbrunn#Am Kronawett 15
2103 Langenzersdorf|Tutzg#Langenzersdorf#Tutzgasse
2103 Langenzersdorf
2123 Unterolberndf.|Sdlg.Rosenbergen#Unterolberndorf#Siedlung Rosenbergen
2130 Mistelbach|Dr-Hoellrigl-Straße#Mistelbach#Doktor-Höllrigl-Straße
2136 Laa/Thaya|Teichgasse#Laa an der Thaya
2136 Laa/Thaya#Laa an der Thaya
2154 Unterstinkenbr#Unterstinkenbrunn
2185 Prinzendorf/Z.|Ebersd/Zaya Erdoelstraße 8#Ebersdorf an der Zaya#Erdölstraße 8
2185 Prinzendorf|Scheibenbergstraße#Rannersdorf an der Zaya#Scheibenbergstraße
2193 Wilfersdorf|Augasse 13,Bullendorf#Bullendorf#Augasse 13
2201 Gerasdorf/Wien|Bahnstraße 38,Seyring,#Seyring#Bahnstraße 38
2201 Gerasdorf/Wien|Seyring,#Seyring#
2201 Gerasdorf/Wien|Schanzenweg#Gerasdorf
2201 Gerasdorf/Wien|Bahnstraße#Gerasdorf
2214 Deutsch Wagram|Mozartstraße#Auersthal
2221 Groß Schweinbarth|Matzner Straße#Groß-Schweinbarth#Matznerstraße
2231 Strasshof/Nbhn#Strasshof an der Nordbahn
2231 Strasshof/Nb#Strasshof an der Nordbahn
2232 Deutsch/Wagram|Fr Hegel-Gasse#Deutsch-Wagram#Friedrich Hegel-Gasse
2285 Leopoldsdorf/M#Leopoldsdorf im Marchfelde
2301 Grossenzersd.#Groß-Enzersdorf
2301 Grossenzersdf|Wittau,#Wittau#
2304 Orth/Donau#Orth an der Donau
2320 Schwechat-Rann|Gerschlagerg#Schwechat-Rannersdorf#Geschlagergasse
2325 Himberg|Teichgasse#Pellendorf#Teichgasse
2325 Himberg B.Wien#Himberg bei Wien
2326 Ma Lanzendorf#Maria Lanzendorf
2331 Vösendorf
2344 Ma.Enzersdorf/G#Maria Enzersdorf
2344 Ma.Enzersdorf|Giesshueblerstraße#Maria Enzersdorf#Gießhüblerstraße
2345 Brunn/Gebirge#Brunn am Gebirge
2345 Brunn/Geb#Brunn am Gebirge
2351 Wiener Neudorf|Reisenbauerring#Wiener Neudorf#Reisenbauer-Ring
2351 Wr.Neudorf|Reisenbauerring#Wiener Neudorf#Reisenbauer-Ring
2351 Wr.Neudorf#Wiener Neudorf
2352 Gumpoldskirch.#Gumpoldskirchen
2352 Gumpoldskirchn#Gumpoldskirchen
2353 Guntramsdorf
2361 Laxenburg
2362 Biedermannsd.#Biedermannsdorf
2384 Breitenfurt#Breitenfurt bei Wien
2392 Sulz/Wienerwd#Sulz im Wienerwald
2401 Fischamend
2431 Kleinneusiedl|Enzerdf/F,Birkenweg#Enzersdorf an der Fischa#Birkenweg
2431 Kleinneusiedl
2442 Unterwaltersdorf
2442 Unterwaltersdf#Unterwaltersdorf
2443 Dtsch Brodersd#Deutsch-Brodersdorf
2460 Bruck/L|Parndfstraße 34,Bruckneudf#Bruckneudorf#Parndorfer Straße 34
2475 Neudorf-Parndf#Neudorf
2475 Neudorf/Parndf#Neudorf
2491 Neufeld/Leitha#Neufeld an der Leitha
2493 Lichtenwörth
2500 Baden Bei Wien|Braitnerstraße#Baden#Braitner Straße
2500 Baden B Wien|Braitnerstraße#Baden#Braitner Straße
2500 Baden B.Wien#Baden
2533 Klausen-Leopdf#Klausen-Leopoldsdorf
2551 Enzesfeld
2560 Berndorf
2563 Pottenstein
2630 Ternitz
2632 Wimpassing#Wimpassing im Schwarzatale
2662 Schwarzau/Geb.#Schwarzau im Gebirge
2700 Wr.Neustadt|Piestinger Weg#Wiener Neustadt
2700 Wr.Neustadt|Schuetzengasse#Wiener Neustadt#Schützengasse
2700 Wr Neustadt|Mittere G#Wiener Neustadt#Mittere Gasse
2700 Wr.Neustadt|Ezilingasse#Wiener Neustadt
2734 Puchberg|Ziehrerweg#Puchberg am Schneeberg#Ziehrerweg
2751 Steinabrückl|Dr M Jung-St 9,Matzendf#Matzendorf-Hölles#Dr.-Max-Jung-Straße 9
2752 Wöllersdorf
2753 Piesting
2761 Miesenbach
2801 Katzelsdorf
2822 Erlach/Pitten|Linsberg#Bad Erlach an der Pitten#Linsberg
3004 Ried/Riederberg|Weinzierl,Gartenstraße#Weinzierl#Gartenstraße
3004 Ried/Riederberg#Ried am Riederberg
3011 Untertullnerb#Untertullnerbach
3011 Purkersdorf|Tullnerbachstraße 87/
3012 Wolfsgraben
3013 Tullnerbach-Lw#Tullnerbach-Lawies
3031 Rekawinkel
3034 Ma Anzbach#Maria Anzbach
3062 Kirchstetten
3100 St Pölten-Spr|Völtendorferstraße#St. Pölten#Völtendorfer Straße
3100 St Pölten-Wag|Altmanng#St. Pölten#Altmanngasse
3100 St Pölten|Bozenerstraße#St. Pölten#Bozener Straße
3100 St Pölten-Spratzern|Harter-Straße 22#St. Pölten#Harter Straße 22
3100 St Pölten|Widerinstraße#St. Pölten
3100 St Pölten|Wienerstraße#St. Pölten#Wiener Straße
3100 St Pölten#St. Pölten
3104 St Pölten-Har|Meerskrautgasse#St. Pölten
3143 Pyhra, St Pölten|Racking#Gattring-Raking
3151 St Georgen/Stf#St. Georgen am Steinfelde
3161 St Veit/Göls#St. Veit an der Gölsen
3192 Hohenberg
3203 Rabenstein|Tradigist#Tradigist
3251 Purgstall/Erl.#Purgstall an der Erlauf
3321 Ardagger|Stefanshart#Ardagger#Stephanshart
3332 Rosenau#Rosenau am Sonntagberg
3335 Weyer|Mühlein
3335 Weyer,Ooe|Neudorf#Neudorf
3340 Waidhofen/Ybbs|Tuerkenweg#Waidhofen an der Ybbs#Türkenweg
3340 Waidhofen/Ybbs#Waidhofen an der Ybbs
3362 Mauer-Öhling#Mauer bei Amstetten
3364 Neuhofen/Ybbs#Neuhofen an der Ybbs
3372 Blindenmarkt
3390 Melk
3430 Tulln#Tulln an der Donau
3434 Tulbing
3470 Kirchberg/Wagr|Ottenthal#Kirchberg am Wagram
3473 Muehlbach/Mtbg|Nr.51#Mühlbach am Manhartsberg#Hauptstraße 5
3500 Krems
3500 Krems/Donau#Krems
3511 Furth/Goettwg#Furth bei Göttweig
3511 Furth/Göttweig#Furth bei Göttweig
3512 Mautern#Mautern an der Donau
3550 Langenlois|Krumpoeckallee#Langenlois#Krumpöck-Allee
3550 Langenlois
3620 Spitz/Donau|Gaertnerweg#Spitz an der Donau#Gärtnerweg
3714 Sitzendorf/Sch#Sitzendorf an der Schmida
3751 Sigmundsherbg#Sigmundsherberg
3812 Gr.Siegharts#Groß-Siegharts
3812 Groß Siegharts#Groß-Siegharts
3812 Gr Siegharts#Groß-Siegharts
3813 Dietmanns
3830 Waidhofen/Thay|Pelletstraße#Waidhofen an der Thaya#Anton-Pellet-Straße
3830 Waidhofen/Thay|Dr.Schoenbauerstraße#Waidhofen an der Thaya#Dr.-Leopold-Schönbauer-Straße
3830 Waidhofen/Th|Frauenstaffel/Evn#Waidhofen an der Thaya#Frauenstaffel/EVN
3843 Dobersberg|Merkengersch
3860 Heidenreichst.#Heidenreichstein
3871 Nagelberg|Alt-Nagelberg#Alt-Nagelberg
3871 Nagelberg|Hinterpocherst 227#Nagelberg#Hinterpocherstraße 227
3871 Nagelberg|Steinbach#Nagelberg#Steinbach
3910 Zwettl
3920 Grossgerungs#Groß Gerungs
3943 Schrems|Budweiserstraße#Schrems#Budweiser Straße
3943 Schrems
3950 Gmuend|Siedlungsstr2 Dietmanns#Dietmanns#Siedlungsstraße 2
3950 Gmuend|Dietmanns#Dietmanns
3950 Gmünd|Sempersdlg 7,Ehrendorf#Ehrendorf#Sempersiedlung 7
4020 Linz|Blumauerstraße
4020 Linz|Breitwiesergutstraße
4020 Linz|Eichendorffstraße
4020 Linz|Glimpfingerstraße
4020 Linz|Greilstraße
4020 Linz|Grundbachweg
4020 Linz|Hugo-Wolf-Straße
4020 Linz|Humboldtstraße
4020 Linz|Kaisergasse
4020 Linz|Kopernikusstraße
4020 Linz|Körnerstraße
4020 Linz|Maidwiesertrasse#Linz#Maidwieserstraße
4020 Linz|Meggauerstraße
4020 Linz|Strnadweg#Linz#Strnadtweg
4030 Linz-Ebelsberg|Kastweg 197A
4030 Linz-Ebelsberg|Traundorfer
4030 Linz|Auwiesenstraße
4030 Linz|Franzosenhausweg
4030 Linz|Hochwangerstraße
4030 Linz|Karl-Steiger-Straße
4030 Linz|Klettfischerweg
4030 Linz|Lunzerstraße
4030 Linz|Meindlstraße
4030 Linz|Seidelbastweg
4030 Linz|Sommerstraße
4030 Linzding|Traunauweg#Linz#Traunauweg# typo / mix of Linz Leonding :-)
4030 Linz|Traunaweg
4030 Linz|Tunnerweg
4030 Linz|Volkenstorferweg
4040 Linz|Altenberger
4040 Linz|Aubrunnerweg
4040 Linz|Breinbauerweg
4040 Linz|Freistädter Straße
4040 Linz|Galvanistraße
4040 Linz|Hauserstraße
4040 Linz|Hazodstraße
4040 Linz|Johann-Wilhelm-Klein-Straße
4040 Linz|Lackerwiesen#Linz#In der Lackerwiesen
4040 Linz|Marienberg
4040 Linz|Pfeifferstraße
4040 Linz|Riesenwiese
4040 Linz|Sperlstraße
4040 Linz|Voltastraße
4048 Linz-Puchenau|Kürnbergblick
4050 Traun
4053 Haid/Ansfelden#Haid bei Ansfelden
4055 Haid|Pucking.Paris-Straße#Pucking#Parisstraße
4060 Linz|Rembrandtstraße#Leonding
4060 Linz/Hart|Martinistraße#Leonding
4061 Pasching
4076 St.Marienkrch.|Polsenztal#St. Marienkirchen an der Polsenz
4082 Aschach/Donau#Aschach an der Donau
4084 St.Agatha|Gmein#St. Agatha
4113 St.Martin/M|Oberhart#St. Martin im Mühlkreis
4150 Rohrbach#Rohrbach-Berg
4150 C/O G.Klein Rohrbach#Rohrbach-Berg
4161 Ulrichsberg
4170 Haslach/Muehl#Haslach an der Mühl
4171 St Peter|Marbach#Auberg
4174 Niederwdkirch|Zeissendorf#Niederwaldkirchen#Zeißendorf
4183 Traberg|Unterbrunwald#Traberg#Unterbrunnwald
4191 Vorderweissenb#Vorderweißenbach
4212 Neumarkt/Muehl#Neumarkt im Mühlkreis
4273 Unterweißenbach
4300 St Valentin#Sankt Valentin
4400 Steyr
4407 Dietach
4421 Aschach/Steyr#Aschach an der Steyr
4451 Garsten|Roman-Rauscher-Straße#Garsten#Roman-Rauscher-Straße 2#OE5GL via qrz.com
4451 Garsten
4481 Asten
4490 St Florian#St. Florian
4502 St.Marien/Neuh|Austraße#St. Marien
4502 St.Marien|Schulstraße#St. Marien
4533 Piberbach
4552 Wartberg/Krems#Wartberg an der Krems
4600 Wels
4600 Wels-Thalheim#Thalheim bei Wels
4643 Pettenbach
4650 Lambach
4651 Stadl-Paura
4673 Hairedt 1|Gaspoltshofen#Gaspoltshofen#Hairedt 1
4701 B.Schallerbach#Bad Schallerbach
4720 Neumarkt|Kirchbach#Kallham#Kirchbach#OE5URM from qrz.com, Neumarkt im Hausruckkreis
4720 Neumarkt/Hsrk.|Kallham#Kallham
4724 Neukirchen Am Wald|Nr#Neukirchen am Walde
4741 Wendling#Wendling bei Haag
4751 Dorf/Pram#Dorf an der Pram
4762 St.Willibald|Aichet#Aichet
4775 Taufkirchen#Taufkirchen an der Pram
4780 Schaerding#Schärding
4782 Schaerding-St Floria#St. Florian am Inn
4800 Attnang-Puchheim
4800 Attnang-Puchhm#Attnang-Puchheim
4813 Altmuenster|Stuecklbachstraße#Altmünster#Stücklbachstraße
4816 Gschwandt B.Gd#Gschwandt
4822 Bad Goisern#Bad Goisern am Hallstättersee
4822 Steeg|Reitern#Bad Goisern am Hallstättersee
4822 Steeg Hallst|Reitern#Bad Goisern am Hallstättersee
4823 Steeg,Hallstaetters.|St.Agatha#Bad Goisern am Hallstättersee#St. Agatha
4861 Schörfling A.A.#Schörfling am Attersee
4863 Seewalchen/Att#Seewalchen am Attersee
4871 Pfaffing|Tiefenbach
4873 Frankenburg|Badsiedlung#Frankenburg am Hausruck
4873 Frankenburg|Zachleiten#Frankenburg am Hausruck
4880 St.Georgen Im Atterg|Brandham#Berg im Attergau
4902 Wolfsegg A.H.|Rossmarkt#Wolfsegg am Hausruck#Roßmarkt
4910 Ried/Innkreis#Ried im Innkreis
4910 Ried|Schwanthalergasse#Ried im Innkreis
4910 Ried Im Ikrs.#Ried im Innkreis
4932 Kirchheim I.I.#Kirchheim im Innkreis
4932 Kirchheim/Ikr.#Kirchheim im Innkreis
4950 Altheim
4975 Roszbach|Nr#Suben#Roßbach#
4982 Obernberg/Inn#Obernberg am Inn
## https://www.statistik.at/verzeichnis/strassenliste/gemplzstr_5.pdf
## https://www.statistik.at/verzeichnis/strassenliste/gemplzstr_5.xls
5020 Salzburg|Alexander Girardistraße#Salzburg#Alexander-Girardi-Straße
5020 Salzburg|Alpenstraße 83
5020 Salzburg|Berchtesgadnerstraße#Salzburg#Berchtesgadner Straße
5020 Salzburg|Bergstraße
5020 Salzburg|Bruendlweg#Salzburg#Bründlweg
5020 Salzburg|Duerlingerstraße#Salzburg#Dürlingerstraße
5020 Salzburg|Elisabethstraße
5020 Salzburg|Erich-Fried-Straße
5020 Salzburg|Erlenstraße
5020 Salzburg|Goethestraße
5020 Salzburg|Haunspergstraße
5020 Salzburg|Innsbrucker Bundesstraße
5020 Salzburg|Julius-Haagn-Straße
5020 Salzburg|Kaiserschützenstraße
5020 Salzburg|Kendlerstaße#Salzburg#Kendlerstraße
5020 Salzburg|Kuno-Brandauer-Straße
5020 Salzburg|Landsturmstraße
5020 Salzburg|Linzer Bundesstraße 11
5020 Salzburg|Moosstraße 86B
5020 Salzburg|Neutorstraße
5020 Salzburg|Peter-Pfenninger-Straße
5020 Salzburg|Pfeifferhofstraße
5020 Salzburg|Prinzingerstraße#Salzburg#Prinzingerstraße
5020 Salzburg|Roseggerstraße
5020 Salzburg|Scherzhauserfeldstraße 36
5020 Salzburg|Scherzhauserfeldstr#Salzburg#Scherzhauserfeldstraße 36
5020 Salzburg|Schieszstattstraße#Salzburg#Schießstattstraße
5020 Salzburg|Schumacherstraße
5020 Salzburg|Sigmund-Haffner-Gasse
5020 Salzburg|Strubergasse
5020 Salzburg|Tenglinggasse
5020 Salzburg|Tiefenbachhofstraße
5020 Salzburg.|Pillweinstraße#Salzburg
5023 Salzburg|Langmoosweg 5
5023 Salzburg|Parscherstraße#Salzburg#Parscher Straße
5026 Salzburg-Aigen|Glaserstraße#Salzburg
5026 Salzburg|Ziegelstadelstraße
5026 Salzburg|Habeggutstraße#Salzburg#Habeggut-Straße
5061 Elsbethen
5071 Wals B.Salzbg.#Wals bei Salzburg
5071 Wals Bei Salzburg|Walser Straße#Wals bei Salzburg#Walserstraße
5082 Groedig#Grödig
5101 Bergheim
5110 Oberndorf Sbg.|#Oberndorf bei Salzburg
5201 Seekirchen|Moedlham#Seekirchen am Wallersee#Mödlham
5201 Seekirchen#Seekirchen am Wallersee
5202 Neumarkt A W|Sighartsteinerstraße#Neumarkt am Wallersee#Sighartsteiner Straße
5203 Koestendorf#Köstendorf
5211 Wetterkreuzstraße 19|Lengau#Lengau#Wetterkreuzstraße 19
5221 Scherschham 32|Lochen#Lochen am See#Scherschham 32
5222 Munderfing
5242 St.Johann Am Walde|Schnaid#St. Johann am Walde#Schnaidt
5242 St.Johann Am Walde|Obereck#St. Johann am Walde
5242 St.Johann/W|Obereck#St. Johann am Walde
5261 Uttendorf,O.Oe|Marktplatz#Helpfau-Uttendorf
5271 Moosbach|Hufnagl#Moosbach bei Mauerkirchen
5272 Treubach
5273 Rossbach#Roßbach
5280 Braunau#Braunau am Inn
5282 Ranshofen-Brau#Ranshofen
5300 Hallwang|Bäckerweg#Esch
5300 Hallwang|Bergstraße
5300 Salzburg|Hallwang Zilling 101#Hallwang#Zilling 101
5300 Hallwang|Zweigstraße#Esch
5300 Bergheim B.Sbg.|Bogenstraße#Esch
5302 Henndorf|Peterhauerweg#Henndorf am Wallersee#Peterbauerweg
5302 Henndorf#Henndorf am Wallersee
5321 Koppl|Lerchenweg#Habach
5340 St.Gilgen|Winkl#Winkl#Winkl
5400 Hallein/Rief|Ahornweg#Taxach
5541 Altenmarkt/Pg#Altenmarkt im Pongau
5570 Mauterndorf|Hnr.31#Mauterndorf#Markt 31 (Hubertusheim)
5570 Mauterndorf
5582 St.Michael Lun|Nr.94#Sankt Michael im Lungau#Marktstraße 94
5582 St.Martin|Hnr.142#Sankt Martin im Lungau#Gerlgasse 144
5582 St.Michael/Lg.|Wieden 244#Sankt Michael im Lungau#St. Egidiweg 244
5582 St.Michael Im Lungau#Sankt Michael im Lungau
5600 St.Johann/Pong#St. Johann im Pongau
5621 St.Veit/Pongau#St. Veit im Pongau
5640 Badgastein|Goethehof#Bad Gastein
5640 Badgastein|Koetschachtal#Bad Gastein#Kötschachtal
5661 Hoher Sonnblick|Rauris#Rauris#Hoher Sonnblick
5661 Rauris, Observatoriu|Hoher Sonnblick#Rauris#Hoher Sonnblick, Observatorium
5753 Saalbach
5760 Saalfelden#Saalfelden am Steinernen Meer
5760 Saalfelden S.M#Saalfelden am Steinernen Meer
6060 Hall I.T.|Fassergasse#Hall in Tirol
6060 Hall/Tirol|Schranne#Hall in Tirol
6063 Innsbruck/Rum|Laerchenstraße#Rum#Lärchenstraße
6063 Innsbruck/Rum|Birkengasse#Rum
6068 Hall/Tirol|Sandegg 3 Mils#Mils#Sandegg 3
6071 Aldrans
6080 Innsbruck-Igls
6105 Leutasch
6123 Terfens
6143 Matrei/Brenner|Muehlbachl, #Matrei am Brenner#
6150 Steinach A.Br.#Steinach am Brenner
6170 Zirl
6232 Rofan|Roßkogel
6233 Kramsach
6241 Rattenberg/Inn|Hnr.85#Rattenberg am Inn#Bienerstraße 85# qrz.com OE7HWT 47.439292°, 11.894928°
6262 Bruck A.Ziller#Bruck am Ziller
6283 Hippach|Laimach
6283 Hippach|Schwendau 191#Schwendau#Mühlen 191
6283 Hippach|Mühlbach 293#Schwendau
6284 Hippach|Ramsau 11B#Ramsau im Zillertal#Talstraße 51# aus Hausnummer ALT - NEU.xls
6290 Mayrhofen|Ahornbahn-Bergst.Filzen#Mayrhofen#Ahornbahn-Berstation Filzenboden
6290 Mayrhofen|Hnr.245#Mayrhofen#Dursterstraße 245
6290 Mayrhofen|Nr. 295#Mayrhofen#Breitlahneweg 295
6290 Mayrhofen|Hnr.391#Mayrhofen#Kreuzlau 391# qrz.com OE7KGI
6290 Mayrhofen|Nr 560#Mayrhofen#Peter-Habeler-Straße 560# qrz.com OE7MCH
6290 Mayrhofen|Hnr.719#Mayrhofen#Tuxer Straße 719
6290 Mayrhofen|Brandberg
6290 Mayrhofen|Dorf Haus
6290 Mayrhofen|Dursterstraße
6290 Mayrhofen|Kreuzlau
6290 Mayrhofen|Rauchenwald
6290 Mayrhofen|Stilluppklammhaus
6290 Mayrhofen|Sportplatzstraße
6290 Mayrhofen|Tuxerstraße#Mayrhofen#Tuxer Straße
6290 Mayrhofen|Zillergrundweg
6290 Mayrhofen|Zillergrund
6292 Finkenberg
6293 Lanersbach#Tux#Lanersbach
6293 Tux|Vorderlanersbach
6295 Ginzling
6336 Langkampfen
6352 Ellmau
6372 Oberndorf/Tirol#Oberndorf in Tirol
6373 Jochberg
6393 St Ulrich|Dorfstr#St. Ulrich am Pillersee
6393 St.Ulrich Am Pillers#St. Ulrich am Pillersee
6401 Inzing
6422 Stams
6430 Ötztal-Bahnhof
6430 Oetztal-Bahnhf#Ötztal-Bahnhof
6430 Oetztal Bahnhf#Ötztal-Bahnhof
6444 Längenfeld
6521 Fließ
6521 Fliess#Fließ
6531 Ried/Oberinntl#Ried im Oberinntal
6531 Ried I.O.|Hauptstraße#Ried im Oberinntal#Nr.
6574 Pettneu Arlbg.#Pettneu am Arlberg
6751 Braz#Braz
6767 Warth
6800 Feldkirch-Altenstadt
6800 Feldkirch-Gisingen|Schufla#Feldkirch-Gisingen#Schufla
6800 Feldkirch-Tosters|Hubstraße#Feldkirch-Tosters
6833 Klaus
6835 Sulz-Röthis|Bündt 19, Muntlix#Muntlix#Bündt 19
6840 Götzis|Major Ellensohn Straße#Götzis#Major-Ellensohn-Straße
6840 Goetzis|Schloesslweg#Götzis#Schlößleweg
6840 Goetzis|Sonderberg#Götzis
6855 Berg/Drau#Berg im Drautal
6971 Hard,Vorarlbg.|Muehlestraße#Hard#Mühlestraße
6972 Fußach
7035 Steinbrunn
7035 Steinnbrunn#Steinbrunn
7041 Wulkaprodersdf|Feldgasse#Wulkaprodersdorf#Feldgasse 5
7041 Wulkaprodersdf#Wulkaprodersdorf
7062 St.Margarethen|Semmelweissgasse#St. Margarethen im Burgenland#Semmelweißgasse
7062 St.Margarethen|Hauptstraße#St. Margarethen im Burgenland
7063 Oggau#Oggau am Neusiedler See
7091 Breitenbrunn
7201 Neudörfl/L#Neudörfl an der Leitha
7323 Ritzing
7503 Grosspetersdf#Großpetersdorf
7571 Rudersdorf|Lahnbachweg
8010 Graz|Conrad-von-Hötzendorf-Straße
8010 Graz|Fröhlichgasse
8010 Graz|Grazbachgasse
8010 Graz|Grillparzerstraße
8010 Graz|Hasnerplatz
8010 Graz|Humboldstraße#Graz#Humboldtstraße
8010 Graz|Münzgrabenstraße
8010 Graz|Purgleitnerstraße
8010 Graz|Purleitnerstraße#Graz#Purgleitnerstraße
8010 Graz|Riesstraße 118
8010 Graz|Rungeweg
8010 Graz|Theodor-Körner-Straße
8010 Graz|Untere Teichstraße
8010 Kainbach|Schillingsdorfer#Kainbach bei Graz
8020 Graz|Eckertstraße
8020 Graz|Göstingerstraße 50/#Graz#Göstinger Straße 50/
8020 Graz|Idlhofgasse
8020 Graz|Koloniegasse
8020 Graz|Lazarettgasse
8020 Graz|Lendkai
8020 Graz|Maderspergergasse
8020 Graz|Neubaugasse
8020 Graz|Oeverseegasse
8020 Graz|Reiherstadlgasse
8020 Graz|Remygasse
8020 Graz|Richard-Strauss-Gasse
8020 Graz|Stadlgasse
8020 Graz|Vinzenzgasse
8041 Graz_Liebenau|Eichbachgasse#Graz
8041 Graz-Liebenau|Eichbachgasse#Graz
8041 Graz-Liebenau|Konrad-Hopferwieser-Gasse#Graz
8041 Graz-Liebenau|Neudorfer#Graz
8041 Graz|Porscheweg
8041 Graz|Raiffeisenstraße 147
8041 Graz|Theodor-Storm-Straße 108
8041 Graz-Liebenau|Kasernstraße 81#Graz
8042 Graz|Eichenweg
8042 Graz|Nußbaumerstraße
8042 Graz|Prof-Franz-Spath-R.#Graz#Professor-Franz-Spath-Ring
8042 Graz-St.Peter|Peierlhang 11 F#Graz#Peierlhang 11/f
8042 Graz-St.Peter|Unterer Breitenweg#Graz
8043 Graz|Apothekerweg
8043 Graz|Mariatroster Straße
8044 Graz-Mariatr|Weinitzen,A.Waldgrund#Niederschöckl#Am Waldgrund
8044 Graz-Weinitzen|Am Waldgrund#Niederschöckl
8045 Graz|Emichgasse
8045 Graz-Andritz|Emichgasse
8045 Graz|Lindengasse
8045 Graz|Richard-Zach-Gasse
8045 Graz|Ziegelstraße
8047 Graz|Mosconweg
8051 Graz-Goesting|Augasse 100#Graz
8051 Graz|Weidweg
8051 Graz|Wiener Straße 256/#Graz#Wiener Straße 256/
8051 Graz-Goesting|Wiener Straße 260#Graz#Wiener Straße 260
8051 Graz-Goesting|Thalstraße#Graz
8051 Graz-Goesting|Weixelbaumstraße#Graz
8052 Graz-Wetzelsdf|Faunastraße 49#Graz
8052 Graz-Wetzelsdf|Josef-Bayer-Gasse#Graz
8052 Graz-Wetzelsdf|Plattlstraße#Graz
8052 Graz-Wetzelsdf|Straßganger Straße 194A#Graz
8053 Graz|Grottenhofstraße
8054 Graz|Dr.Lemisch-Straße#Graz#Doktor-Lemisch-Straße
8054 Graz|Mantscha
8054 Graz-Strassgng|Stregengasse
8054 Graz-Strassgng|Trattfelderstraße#Graz
8054 Pirka#Pirka
8054 Seiersberg|Grünlandweg
8055 Graz|Pratogasse
8055 Graz-Puntigam|Gmeinstraße
8055 Graz-Puntigam|Neuseiersbg.Roentgstr#Seiersberg#Röntgenstraße
8063 Eggersdorf|Eggersdorf
8063 Eggersdorf|Waldstraße
8071 Hausmannstaett#Hausmannstätten
8077 Fernitz|Goessendorf,#Gössendorf#
8077 Gössendorf
8082 Kirchbach/Stmk#Kirchbach-Zerlach
8103 Rein|Hörgas#Gratwein-Straßengel#Hörgas
8111 Judendorf|Murfeldsiedlung
8112 Gratwein
8113 St.Oswald/Plankenw.#Sankt Oswald bei Plankenwarth
8141 Hausmannstaetn|Laubweg#Hausmannstätten
8143 Dobl
8184 Anger
8222 St.Johann/Herb#St. Johann bei Herberstein
8225 Poellau/Hartbg|Kirchenackersiedlung#Pöllau bei Hartberg
8225 Poellau/Hartbg|Schoenau 53#Pöllau bei Hartberg|Scheibenweg 53
8225 Poellau/Hartbg|Siedlung#Pöllau bei Hartberg
8225 Poellau/Hartbg|Zeil#Pöllau bei Hartberg
8225 Poellau/Hartbg|Ziegelofengasse#Pöllau bei Hartberg
8230 Hartberg
8232 Grafendorf|Grafendorf 174#Grafendorf bei Hartberg#Augasse 174# Herold, qrz.com
8241 Dechantskirch.#Dechantskirchen
8241 Dechantskirchn#Dechantskirchen
8301 Lassnitzhoehe#Laßnitzhöhe
8323 St.Marein/Graz|Mittergoggitsch#Sankt Marein bei Graz
8330 Feldbach
8352 Unterlamm
8422 St Nikolai|Drassling #Sankt Nikolai ob Drassling#
8423 St. Veit Am Vogau|Nr 11A#St. Veit in der Südsteiermark#Obere Marktstraße 11# qrz.com OE6WSF
8430 Leibnitz|Kittenberg
8430 Leibnitz
8430 Kaindorf/Sulm#Kaindorf an der Sulm
8438 Mayrhofen|Hochsteeg#Mayrhofen#Hochsteg
8442 Kitzeck|Gauitsch
8453 St.Johann I.S.#Sankt Johann im Saggautal
8462 Gamlitz
8463 Leutschach
8511 St Stefan Ob Stainz#St. Stefan ob Stainz
8522 Gr.St.Florian#Groß Sankt Florian
8530 Deutschlandsberg
8543 St.Martin I.S.|Otternitz#Sankt Martin im Sulmtal
8561 Söding|Steinstraße
8570 Voitsberg
8600 Bruck A.D. Mur#Bruck an der Mur
8600 Bruck/Mur#Bruck an der Mur
8600 Oberaich
8605 Kapfenberg
8641 St.Marein/Mzt#Sankt Marein im Mürztal
8642 St.Lorenzen/Mt#Sankt Lorenzen im Mürztal
8643 Allerheiligen
8650 Kindberg-Aumühl|Grazerstraße#Kindberg-Aumühl#Grazer Straße
8662 Mitterdorf|Toni-Schruf-Straße#Sankt Barbara im Mürztal
8662 Mitterdorf/Mzt|Wildgansstraße#Sankt Barbara im Mürztal
8665 Langenwang
8680 Mürzzuschlag|Roseggergasse
8680 Mürzzuschlag|Wiener Straße
8680 Muerzzuschlag|Ob.Waldrandsiedlgsgasse#Mürzzuschlag#Obere Waldrandsiedlungsgasse
8680 Muerzzuschlag|Gruene Insel#Mürzzuschlag#Grüne Insel
8680 Muerzzuschlag|Wiener Straße
8682 Muerzzuschlag|Gutenbrunngasse#Mürzzuschlag
8684 Spital Am Semmering#Spital am Semmering
8700 Leoben
8715 St.Lorenzen/Knittelf|Ugendorf#St. Margarethen bei Knittelfeld
8812 Mariahof
8812 St.Blasen#Sankt Blasen
8812 St. Blasen#Sankt Blasen
8820 Neumarkt Stmk#Neumarkt in der Steiermark
8850 Murau|Schwarzenbergsdlng#Murau#Schwarzenbergsiedlung
8850 Murau|Schwarzenbergsiedlg.#Murau#Schwarzenbergsiedlung
8903 Lassing/Selzt.#Lassing#Trojach
8911 Admont
8940 Weißenbach/L.|Weißenbach/L.#Weißenbach bei Liezen#Weißenbach bei Liezen
8954 S Martin/Grimm|Salza#Mitterberg-Sankt Martin
8972 Ramsau Am Dachstein#Ramsau am Dachstein
8972 Dachstein-|Suedwandbahn,Hunerkogel#Ramsau am Dachstein#Dachstein-Südwandbahn, Hunerkogel
8984 Kainisch#Pichl-Kainisch
9020 Klagenfurt|12.Novemberstraße#Klagenfurt#12.-November-Straße
9020 Klagenfurt|12 Novemberstraße#Klagenfurt#12.-November-Straße
9020 Klagenfurt|Beethoven
9020 Klagenfurt|Carl-Maria-von-Weber-Gasse
9020 Klagenfurt|Feldhofg#Klagenfurt#Feldhofgasse
9020 Klagenfurt|Fledermausgasse
9020 Klagenfurt|Gottesbichl
9020 Klagenfurt|Hochstuhlweg
9020 Klagenfurt|Josef-Ressel-Straße
9020 Klagenfurt|Kohldorferstraße#Klagenfurt#Kohldorfer Straße
9020 Klagenfurt|Laudonstraße
9020 Klagenfurt|Lilienthalstraße
9020 Klagenfurt|Maximilianstraße
9020 Klagenfurt|Niederdorf 23#Klagenfurt#Niederdorfer Straße 211# qrz.com OE8RKK
9020 Klagenfurt|Raupenhofstraße
9020 Klagenfurt|Schlossteichweg#Klagenfurt#Schloßteichweg
9061 Wölfnitz|Dr.-Kucher-Weg#Klagenfurt
9065 Ebenthal#Ebenthal in Kärnten
9073 Klgft/Viktring#Klagenfurt-Viktring
9061 Klgft/Wölfnitz|Felberweg#Klagenfurt-Wölfnitz
9100 Völkermarkt|Kanaltalerstraße#Kanaltaler Straße
9100 Völkermarkt|Nibelungenstraße#Völkermarkt#Nibelungenstraße
9100 Völkermarkt|St Peter/Wallersberg 78#St. Peter am Wallersberg#Schulweg 13
9103 Diex|Haimburgerberg 41
9122 St Kanzian|Panoramaweg#Stein im Jauntal
9122 St Kanzian|Klopeinerstraße#St. Kanzian am Klopeiner See#Klopeiner Straße
9143 St Michael/Blbg|Feistritz#Feistritz ob Bleiburg#St. Michael ob Bleiburg
9220 Velden/Ws#Velden am Wörthersee
9300 St Veit/Glan#St. Veit an der Glan
9322 Micheldorf/Ktn|Ringstraße#Micheldorf
9360 Friesach|St Thomasweg#Friesach#Sankt-Thomas-Weg
9400 Wolfsberg
9413 St Gertraud/Lav#Frantschach-St. Gertraud
9431 St Stefan/Lav#St. Stefan im Lavanttal
9462 Bad St Leonhard#Bad Sankt Leonhard im Lavanttal
9500 Villach|Albrecht Dürer-Straße#Villach#Albrecht-Dürer-Straße
9500 Villach|Bleibergerstraße 50#Villach#Bleiberger Straße 50
9500 Villach|Brandenburgweg 14
9500 Villach|Dr Oswin Moro Straße#Villach#Doktor-Oswin-Moro-Straße
9500 Villach|Ernst Pliwa-Gasse#Villach#Ernst-Pliwa-Gasse
9500 Villach|Farbmuehlenweg#Villach#Farbmühlenweg
9500 Villach|Hans Gasser Platz#Villach#Hans-Gasser-Platz
9500 Villach|Heidenfeldstraße
9500 Villach|J.Ghonallee#Villach#Jakob-Ghon-Allee
9500 Villach|Kiesweg
9500 Villach|Klagenfurterstraße#Villach#Klagenfurter Straße
9500 Villach|Kugelweg
9500 Villach|Lindenweg
9500 Villach|Linsengasse
9500 Villach|Ludwig Walter-Straße#Villach#Ludwig-Walter-Straße
9500 Villach|Magdalenerstraße 14#Villach#Magdalener Straße 14
9500 Villach|Markus Pernhartstraße#Villach#Markus-Pernhart-Straße
9500 Villach|Richtstraße
9500 Villach|St Agathen#Villach#Sankt Agathen
9500 Villach|St Leonhard,Lindenweg#Villach#Lindenweg
9500 Villach|Teichweg
9500 Villach|Tschinowitzerweg
9500 Villach|Ulmenweg
9500 Villach|Vill Schächtestraße 40/#Villach#Villacher Schächtestraße 40/
9500 Villach|Völkendorferstraße#Villach#Völkendorfer Straße
9500 Villach|Widmanng#Villach#Widmanngasse
9523 Landskron
9524 Villach/St Magdalen|Dorfstraße#Villach
9524 St Magdalen|St Ulrich/Dorfstraße#Villach#Dorfstraße
9524 St Magdalen|Rudolfweg#Villach
9524 Villach|Kasernengasse
9552 Steindorf/Osee#Steindorf am Ossiacher See
9560 Feldkirchen
9560 Feldkirchen/Ktn|St Ulrich #Feldkirchen in Kärnten#
9580 Drobollach|Kalcherstraße#Drobollach#Raimund-Kalcher-Straße
9602 Thörl Maglern#Thörl-Maglern
9612 St Georgen/Gail|Labientschach#Labientschach
9623 St Stefan/Gail|St Paul#St. Stefan an der Gail#St. Paul
9651 St Jakob/Les|Podlanig#St. Jakob im Lesachtal
9710 Feistritz/Drau#Feistritz an der Drau
9710 Paternion
9772 Dellach/Drau#Dellach im Drautal
9800 Spittal/Drau|Baldersdorf#Spittal an der Drau
9800 Spittal/Drau#Spittal an der Drau
9811 Lendorf
9815 Kolbnitz
9821 Obervellach
9872 Millstatt/Ktn|Dellach#Dellach am Millstätter See
9900 Lienz,Osttirol|Tristacherstraße#Lienz#Tristacher Straße
9900 Lienz,Osttirol#Lienz
9905 Lienz,Gaimberg|Grafendorf#Gaimberg
9911 Thal-Assling|Burg#Assling
9971 Matrei/Ostt.#Matrei in Osttirol
83457 Bayerisch Gmain

View File

@ -1,5 +1,8 @@
-- Initialize the tables for the callbook program
DROP TABLE IF EXISTS `callbook_user`;
DROP TABLE IF EXISTS `callbook_address`;
CREATE TABLE IF NOT EXISTS `callbook_user`(
`id` SERIAL,
`user_id` INT(10) UNSIGNED NOT NULL DEFAULT 0,
@ -11,8 +14,8 @@ CREATE TABLE IF NOT EXISTS `callbook_user`(
`created_by` INT(10) UNSIGNED NOT NULL DEFAULT 0,
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified_by` INT(10) UNSIGNED NOT NULL DEFAULT 0,
`active` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`inactive` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`active` TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'the user is active',
`inactive` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'old inactive call since...',
`address_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'link to id of callbook_adress',
PRIMARY KEY(`id`)
) AUTO_INCREMENT=0
@ -23,14 +26,21 @@ CREATE TABLE IF NOT EXISTS `callbook_address`(
`id` SERIAL,
`location` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'original location from the import',
`address` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'original address from the import',
`postal_code` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'also known as Zip code, "Postleitzahl"',
`org_city` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'original city from the import',
`city` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'original city from the import',
`status` INT(1) NOT NULL DEFAULT '0' COMMENT 'Status of the address: 0...invalid, -1...uncertain, -2...in progress, 1...computed (valid)',
`postal_code` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'also known as Zip code, "Postleitzahl", computed from location',
`city` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'city, computed from location',
`street` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'street, computed from address',
`federal_state_code` TINYINT NOT NULL DEFAULT -1
COMMENT 'Austria: 0...outside, 1...Vienna, 2...Salzburg, 3...Lower Austria, 4...Burgenland, 5...Upper Austria, 6...Styria, 7...Tyrol, 8...Carinthia, 9...Vorarlberg',
`lat` DOUBLE NOT NULL DEFAULT 0.0 COMMENT 'latitude',
`long` DOUBLE NOT NULL DEFAULT 0.0 COMMENT 'longitude',
`qth` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Maidenhead locator, QTH locator',
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created_by` INT(10) UNSIGNED NOT NULL DEFAULT 0,
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified_by` INT(10) UNSIGNED NOT NULL DEFAULT 0,
`active` TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'the address is active',
`inactive` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'old inactive address, since...',
PRIMARY KEY(`id`)
) AUTO_INCREMENT=0
DEFAULT CHARSET=utf8mb4

2
afu/.typo_call Normal file
View File

@ -0,0 +1,2 @@
# TYPO CALL - 2024-07-04 Version 1.0.0
OE-7RLJ OE7RLJ

View File

@ -223,6 +223,30 @@ Clone the repository `script` to your site with:
## Connecting to MariaDB database
### Install mariadb database
$ yay -S mariadb
Configure the database with e.g.
$ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Enable and start the database service with:
$ sudo systemctrl enable mariadb.service
$ sudo systemctrl start mariadb.service
#### Create a user "om" who has only access to the database table
# mariadb
CREATE DATABASE callbook;
GRANT ALL PRIVILEGES ON callbook.* TO 'om'@'localhost' IDENTIFIED BY 'oe3tkt';
FLUSH PRIVILEGES;
QUIT;
## Install python-mariadb
$ yay -S python-mysql-connector

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3940ccf3799c50e4dc3325f48d5d03ea27e3f298d5def012cdb49b54e120ccb
size 1878785

View File

@ -23,15 +23,34 @@ def call_description():
def call_configparser():
config = configparser.ConfigParser()
config['MARIADB'] = {
'db_user': 'om',
'db_password': 'oe3tkt',
'db_host': '127.0.0.1',
'db_port': 3306,
'db_database': 'callbook'
}
with open(get_active_path('config.ini'), 'w') as configfile:
config.write(configfile)
try:
configfile = get_active_path('config.ini')
ret = config.read(configfile)
if not ret:
print(f'The file {configfile} was not found. We create a new config file.')
config['Common']={
'description': 'Download and Parse the Austrian Callbook',
'author': 'Thomas Kuschel, OE3TKT (OExTKT)',
'version': __version__,
'created': datetime.datetime.now()
}
config['MariaDB'] = {
'user': 'om',
'password': 'oe3tkt',
'host': '127.0.0.1',
'port': 3306,
'database': 'callbook'}
with open(get_active_path('config.ini'), 'w') as configfile:
config.write(configfile, False)
print(f'Configuration file "config.ini" created.')
except FileNotFoundError:
sys.exit(8)
except Exception as e:
print('Error: {}'.format(e), file=sys.stderr)
sys.exit(9)
# print(config.sections()) ## ['Common', 'MariaDB']
return config
def call_parser():
parser = argparse.ArgumentParser(
@ -46,7 +65,7 @@ def call_parser():
parser.add_argument('-V', '--version', action='version', version='{} {}'.format(os.path.split(__file__)[1],__version__))
parser.add_argument('-v', '--verbose', action='append_const', const = 1)
# Rufzeichenliste_AT_Stand_010624.pdf
parser.add_argument('-p', '--path', default='afu/Rufzeichenliste_AT_Stand_010624.pdf', help= 'skip the download if the specified path to a PDF file exists')
parser.add_argument('-p', '--path', default='', help= 'skip the download if the specified path to a PDF file exists')
# parser.add_argument('-t', '--type', default='' , help='specify the output, supported types are [ CSV | JSON ]') # not implemented yet
parser.add_argument('-o', '--output', default='', help='specify the file where the data are written to, default stdout')
parser.add_argument('-m', '--mariadb', help='SQL interface to MariaDB (MySql) format "<IP-Address>:<Port> <User> <Passwd>" or defined in .config')
@ -54,17 +73,17 @@ def call_parser():
opt = parser.parse_args()
opt.verbose = 0 if opt.verbose is None else sum(opt.verbose)
if opt.path != '' and os.path.dirname(opt.path) == '':
opt.path = get_active_path(opt.path)
return opt
def call_website(url,verbose,path='',interactive=False,output='',mariadb=''):
if path:
if os.path.exists(path):
return path
else:
print(f'The given path "{path}" does not exist.')
sys.exit(3)
if(interactive):
print('Interactive')
driver=webdriver.Chrome()
@ -95,7 +114,7 @@ def call_website(url,verbose,path='',interactive=False,output='',mariadb=''):
if(interactive):
time.sleep(300)
else:
time.sleep(4)
time.sleep(40)
driver.close()
return os.path.basename(href)
@ -123,7 +142,6 @@ def is_clubstation(call):
return False
def replace_substring_with_line(path, search_substring, verbose=0):
try:
@ -162,7 +180,7 @@ def gender_substring(path, search_substring, verbose=0):
gender_substring.lines = None
def get_active_path(file)
def get_active_path(file):
return os.path.join(os.path.dirname(os.path.abspath(__file__)), file)
def get_gender(firstnames, surname, call, verbose=0):
@ -178,6 +196,7 @@ def get_gender(firstnames, surname, call, verbose=0):
if verbose > 0:
get_gender.cnt += 1
print(f'({get_gender.cnt}){call} "{firstname}" [{firstnames} {surname}] not found in file {genderfile} - gender "x" is set.')
return gender
get_gender.cnt = 0
@ -230,9 +249,33 @@ def call_split_name(fullname, call, verbose):
return firstname, surname, gender
def fix_call(call,verbose=1):
fixfile = '.typo_call'
path = get_active_path(fixfile)
if os.path.exists(path):
if not fix_call.lines:
with open(path,'r') as file:
fix_call.lines = file.readlines()
if verbose > 0:
print(f'File "{fixfile}":')
for line in fix_call.lines:
print(f'>> {line.rstrip()}')
print('>> ** EOF **')
for line in fix_call.lines[1:]: # starting with line 1
words = line.rstrip().split()
if len(words) != 2:
continue
if words[0] == call:
if verbose > 0:
print(f'Corr typo call: {words[0]} => {words[1]}')
return words[1]
return call
fix_call.lines = None
def fix_typo(call, fullname, verbose=1):
fixtypofile = '.typo_callbook'
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), fixtypofile)
path = get_active_path(fixtypofile)
if os.path.exists(path):
try:
if not fix_typo.lines:
@ -308,6 +351,592 @@ def fix_typo(call, fullname, verbose=1):
fix_typo.lines = None
fix_typo.spaces = []
def isinteger(s):
for char in s:
if not char.isdigit():
return False
return True
def call_change_city(location, address, verbose):
post_file = '.post_code'
path = get_active_path(post_file)
if not call_change_city.lines:
if os.path.exists(path):
try:
with open(path, 'r') as file:
call_change_city.lines = file.readlines()
if verbose > 0:
print(f'File "{post_file}":')
for line in call_change_city.lines:
print(f'>> {line.rstrip()}')
print('>> ** EOF **')
# print(f'{path}')
except FileNotFoundError:
print(f'The file {path} was not found.')
except Exception as e:
print(f'An error occurred: {e}')
else:
return 0,'',''
postal_code = 0
city = location
addr,city = corr_street(address,city)
street = addr
for line in call_change_city.lines:
line = line.rstrip() # remove the \n
locpart = line.split(' ',1)
if len(locpart) < 2:
continue
exchange = locpart[1].split('#')
citypart = exchange[0].split('|',1)
if (citypart[0] != location): # A hit? Else...
continue
if len(citypart) > 1:
# addr = address[0:len(citypart[1])]
if (citypart[1] != addr[0:len(citypart[1])]):
continue
postal_code = locpart[0]
if len(exchange) > 1:
city = exchange[1]
if len(exchange) > 2 and len(citypart) > 1:
street = addr.replace(citypart[1],exchange[2])
# print(f'PLZ: {postal_code}, City: {city}')
break
if postal_code != 0:
if verbose > 0:
if address == addr:
print(f'location/address: {location}|{addr} => {postal_code} {city}|{street}')
else:
print(f'location/address: {location}|({address}){addr} => {postal_code} {city}|{street}')
else:
call_change_city.cnt += 1
if address == addr:
print(f'[{call_change_city.cnt}] loc/addr: {location}|{addr} => {postal_code} {city}|{street}')
else:
print(f'[{call_change_city.cnt}] loc/addr: {location}|({address}){addr} => {postal_code} {city}|{street}')
return postal_code, city, street
call_change_city.lines = None
call_change_city.cnt = 0
def corr_street(street,city):
street = street.replace('strasse','straße')
street = street.replace('Strasse','Straße')
street = street.replace('str ','straße ')
street = street.replace('Str ','Straße ') # Brünner Str 221/4/5
street = street.replace('str.','straße')
street = street.replace('Stg. ','Stiege ')
street = street.replace('g. ','gasse ')
street = street.replace('-G ','-Gasse ')
street = street.replace('Stiege ','Stg. ')
street = street.replace('Dr. ','Dr.-')
# Special, stupid fixes
street = street.replace('Str.1','Straße 1') # Peter-Berner-Str.10/1/10
street = street.replace('Str.5','Straße 5') # Wagramer Str.59/14/2
street = street.replace('Str.6','Straße 6')
street = street.replace('Str.8','Straße 8')
street = street.replace('Str.','Straße') # Brünner Str. 106/43
street = street.replace('Str7','Straße 7') # Hetzendorfer Str79/2/14
street = street.replace('Str8','Straße 8') # Theodor-Kramer-Str8/274
street = street.replace('Markhofg.13-15/','Markhofgasse 13-15/5/14') # Mautner-Markhofg.13-15/ (OE1JJB)
street = street.replace('g.2','gasse 2') # Spittelbreiteng.23/7/2/
street = street.replace('g.3','gasse 3') # Rathausg.32, Wulkaprodersdorf
street = street.replace('g.4','gasse 4') # Siebenbrunneng.42/1/18
street = street.replace('Absbergg ','Absberggasse ')
street = street.replace('Alfred Huthg ','Alfred-Huth-Gasse ')
street = street.replace('Altmannsdfstraße ','Altmannsdorfer Straße ') # Altmannsdfstr 170 23/7
street = street.replace('Amthofensiedlung1','Amthofensiedlung 1')
street = street.replace('Anningerg ','Anningergasse ')
street = street.replace('Antonig ','Antonigasse ') # 7063 Oggau am Neusiedler See
street = street.replace('Arbeiterg ','Arbeitergasse ')
street = street.replace('Arnoldg ','Arnoldgasse ')
street = street.replace('Bellinig ','Bellinigasse ')
street = street.replace('Birkeng ','Birkengasse ')
street = street.replace('Bucheng ','Buchengasse ')
street = street.replace('Canisiusg ','Canisiusgasse ')
street = street.replace('Czartoryskig ','Czartoryskigasse ')
street = street.replace('Denglerg ','Denglergasse ')
street = street.replace('Endemanng ','Endemanngasse ')
street = street.replace('Ernst Ludwigg ','Ernst-Ludwig-Gasse ')
street = street.replace('Feldg ','Feldgasse ')
street = street.replace('Flachg ','Flachgasse ')
street = street.replace('Gatterburgg ','Gatterburggasse ')
street = street.replace('Georg Sigl G ','Georg-Sigl-Gasse ')
street = street.replace('Goldegg ','Goldeggasse ')
street = street.replace('Gregoryg ','Gregorygasse ')
street = street.replace('Grundlg ','Grundlgasse ')
street = street.replace('Gusenleithnerg ','Gusenleithnergasse ')
street = street.replace('Sendemast Hegerber','Sendemast Hegerberg')
street = street.replace('Hermanng ','Hermanngasse ') # 7, Neubau, Wien
street = street.replace('Hutteng ','Huttengasse ')
street = street.replace('Isbaryg ','Isbarygasse ')
street = street.replace('Johannesg ','Johannesgasse ')
street = street.replace('Karl Stummerg ','Karl-Stummer-Gasse ') # Wieselburg
street = street.replace('Kaunitzg ','Kaunitzgasse ')
street = street.replace('Keferg ','Kefergasse ')
street = street.replace('Keinerg ','Keinergasse ')
street = street.replace('Khekg ','Khekgasse ')
street = street.replace('Lacknerg ','Lacknergasse ')
street = street.replace('Langsulzg ','Langsulzgasse ')
street = street.replace('Lavantg ','Lavantgasse')
street = street.replace('Leiteng ','Leitengasse ')
street = street.replace('Leopoldig ','Leopoldigasse ')
street = street.replace('Lichtensterng ','Lichtensterngasse ')
street = street.replace('Linseng ','Linsengasse ')
street = street.replace('Markowskyg ','Markowskygasse ')
street = street.replace('Mölkerg ','Mölkergasse ')
street = street.replace('Mommseng ','Mommsengasse ')
street = street.replace('Neilreichg ','Neilreichgasse ')
street = street.replace(' Ors Sendeanlage',' ORS-Sendeanlage')
street = street.replace('Orf Gebäude','ORF-Gebäude')
street = street.replace('Othellog ','Othellogasse ')
street = street.replace('Pehamg ','Pehamgasse ')
street = street.replace('Pfeilg ','Pfeilgasse ')
street = street.replace('Pfenninggeldg ','Pfenninggeldgasse ')
street = street.replace('Pohlg ','Pohlgasse ')
street = street.replace('Reinprechtsdf ','Reinprechtsdorfer ')
street = street.replace('Ringelseeg ','Ringelseegasse ')
street = street.replace('Robert-Hamerlingg ','Robert-Hamerling-Gasse ')
street = street.replace('Romanog ','Romanogasse ')
street = street.replace('Rombergg ','Romberggasse ')
street = street.replace('Roseng ','Rosengasse ')
street = street.replace('Rötzerg ','Rötzergasse ')
street = street.replace('Ruzickag ','Ruzickagasse ')
street = street.replace('Schützpl ','Schützplatz ')
street = street.replace('Schiffmühlenst ','Schiffmühlenstraße ')
street = street.replace('Schirrmanng ','Schirrmanngasse ')
street = street.replace('Schlussnig ','Schlußnig ')
street = street.replace('Seutterg ','Seuttergasse ')
street = street.replace('Siedlerg ','Siedlergasse ')
street = street.replace('Sigmund-Haffnerg ','Sigmund-Haffner-Gasse ')
street = street.replace('Sillerg ','Sillergasse ')
street = street.replace('Speckbacherg ','Speckbachergasse ')
street = street.replace('Spengerg ','Spengergasse ')
street = street.replace('Starhembergg ','Starhemberggasse ')
street = street.replace('Stolbergg ','Stolberggasse ')
street = street.replace('Straßmeyerg ','Straßmeyergasse ')
street = street.replace('Zanaschkag ','Zanaschkagasse ')
street = street.replace('Zentag ','Zentagasse ')
street = street.replace('aße1','aße 1')
street = street.replace('aße2','aße 2') #Ziegelhofstrasse29/16
street = street.replace('aße3','aße 3')
street = street.replace('aße5','aße 5') #Josefstädterstraße56/2
street = street.replace('aße6','aße 6')
street = street.replace('aße8','aße 8')
street = street.replace('aße9','aße 9')
street = street.replace('dorf3','dorf 3') # Füllersdorf 37
street = street.replace('An Der Lan Straße','An-der-Lan-Straße')
street = street.replace('An-Der-','An-der-') # An-der-Lan-Straße
street = street.replace('An Der Furt','An-der-Furt')
street = street.replace('An Der Leiten','An der Leiten') # 6200 Jenbach
street = street.replace('Auf Der ','Auf der ')
#street = street.replace('Auf Der Kohlwiese','Auf der Kohlwiese') # Walding
street = street.replace(' (Klg Am Am', ' (Klg Am Ameisbach)')
# Typos
street = street.replace('Achtungvierzigerplatz ','Achtundvierzigerplatz ')
street = street.replace('Aflinger Straße','Aflingerstraße')
street = street.replace('Anton-Bruckner- Straße','Anton-Bruckner-Straße')
street = street.replace('Arsenal Objet ','Arsenal Objekt ')
street = street.replace('Basler G ','Basler Gasse ')
street = street.replace('Bierhaeuselberggasse ','Bierhäuselberggasse ')
street = street.replace('Breitenfrt ','Breitenfurter ')
street = street.replace('Brigitt.-L148-154/12/17','Brigittenauer Lände 148-154/12/17')
street = street.replace('Brigitt L ','Brigittenauer Lände ')
street = street.replace('Dr.Sumpfstraße ','Dr.-Stumpf-Straße ')
street = street.replace('Fesstgasse ','Feßtgasse ')
street = street.replace('Fuchsenfeld Gasse ','Fuchsenfeldgasse')
street = street.replace('Gußriegelstraße','Gussriegelstraße') # seit 1999-12-17 Gemeinderatsbeschluss Wien
street = street.replace('Hardegggasse','Hardeggasse')
street = street.replace('Hoehenrainweg ','Höhenrainweg ') # Ehrwald
street = street.replace('Hoeggen ','Höggen ')
street = street.replace('Hoergas ','Hörgas ')
street = street.replace('H.-Collin-Straße','Heinrich-Collin-Straße')
street = street.replace('Hptst ','Hauptstraße ')
street = street.replace('Hernalser Hptstraße ','Hernalser Hauptstraße ') # Hernalser Hptstr.230/14
street = street.replace('Hütteldfstr1','Hütteldorfer Straße 1') # Hütteldfstr180-186/5/29
street = street.replace('In Der ','In der ')
street = street.replace('Iz Nö-Süd Straße','IZ NÖ-Süd Straße')
street = street.replace('Iz Nö-Süd, Straße','IZ NÖ-Süd Straße')
street = street.replace(', Obj. ',', Objekt ')
street = street.replace(' Obj. ',', Objekt ')
street = street.replace('Jaegerstraße ','Jägerstraße ')
street = street.replace('Kaiserebersdorferst ','Kaiserebersdorfer Straße ')
street = street.replace('Kaiser Ebersd.Straße','Kaiserebersdorfer Straße')
street = street.replace('Koepfleweg','Köpfleweg') # Riezlern
street = street.replace('Kuernbergblick','Kürnbergblick')
street = street.replace('Loewenthalgasse ','Löwenthalgasse ')
street = street.replace('Loeblichgasse','Löblichgasse')
if (city=='Graz'):
street = street.replace('Maderspergerstraße','Maderspergergasse')
street = street.replace('Neulerchfd.Straße','Neulerchenfelder Straße')
street = street.replace('Neustift Am Walde','Neustift am Walde')
street = street.replace('Nussdorfer','Nußdorfer')
street = street.replace('Oberweissenbach','Oberweißenbach')
street = street.replace('Oehlermuehle ','Öhlermühle ')
street = street.replace('Pernersdorfergasse','Pernerstorfergasse') # Wien 10
street = street.replace('Puechlgasse','Püchlgasse')
street = street.replace('Rossauer Lände','Roßauer Lände')
street = street.replace('Rossbachstraße','Roßbachstraße')
street = street.replace('Russbergstraße','Rußbergstraße')
street = street.replace('Salzlaende ','Salzlände ')
street = street.replace('Schieszstandstraße','Schießstandstraße') # 6200 Jenbach
street = street.replace('Schliessmanngasse ','Schließmanngasse ')
street = street.replace('Schlossmuehlgasse ','Schloßmühlgasse ') # Wiener Neudorf
street = street.replace('Schluesselamtsgasse ','Schlüsselamtsgasse ') # Krems
if (city == 'Innsbruck'):
street = street.replace('Schmidgasse','Schmiedgasse')
street = street.replace('Schuchardstraße','Schuchardtstraße')
street = street.replace('Schuetzenstraße','Schützenstraße')
street = street.replace('Simmering/Blockkraftw','Simmering Blockkraftwerk')
street = street.replace('Spesingerstraße ','Speisingerstraße') # typo in Wien
street = street.replace('St. Hubertusgasse ','St.-Hubertus-Gasse ')
street = street.replace('St.Michael-G.1','St.-Michael-Gasse 1')
street = street.replace('St. Veit-Gasse','St.-Veit-Gasse') # 1130 Wien
street = street.replace('Stoegergasse','Stögergasse') # 2000 Stockerau
street = street.replace('Sturbergasse','Strubergasse') # Sturbergasse 60, Salzburg
street = street.replace('Toescherweg','Töscherweg') # 8144 Tobelbad
street = street.replace('Universitaetsstraße','Universitätsstraße') # 6020 Innsbruck
street = street.replace('Voegelebichl','Vögelebichl') # 6020 Innsbruck
street = street.replace('Waelderstraße','Wälderstraße') # 6900 Bregenz
street = street.replace('Weissenbachgraben ','Weißenbachgraben ') # Waidhofen an der Ybbs
if (street == 'Rum,Serlesstraße 22'):
city = 'Rum'
street = 'Serlesstraße 22'
# Spelling VIPs
street = street.replace('10. Oktober Straße','10.-Oktober-Straße')
street = street.replace('12.Februarstraße','12.-Februar-Straße')
street = street.replace('12. Novemberstraße','12.-November-Straße')
street = street.replace('Ada Christengasse','Ada-Christen-Gasse')
street = street.replace('Adalbert Stifter Straße','Adalbert-Stifter-Straße')
street = street.replace('Adolf Netsch Straße','Adolf-Netsch-Straße')
street = street.replace('Alexander Groß-Gasse','Alexander-Groß-Gasse')
street = street.replace('Alfons Petzoldgasse','Alfons-Petzold-Gasse')
street = street.replace('Alfred Jägerweg','Alfred-Jäger-Weg')
street = street.replace('Alois Kellner Straße','Alois-Keller-Straße')
street = street.replace('Am Langen Felde','Am langen Felde')
street = street.replace('Am Muellerbach','Am Müllerbach')
street = street.replace('Andreas Grein Gasse','Andreas-Grein-Gasse')
street = street.replace('Andreas Hoferstraße','Andreas-Hofer-Straße') # Landeck
street = street.replace('Andreas Urteil Weg','Andreas-Urteil-Weg')
street = street.replace('Anton Baumgartner Straße','Anton-Baumgartner-Straße')
street = street.replace('Anton Baumgartnerstraße','Anton-Baumgartner-Straße')
street = street.replace('Anton-Baumgartnerstraße','Anton-Baumgartner-Straße')
street = street.replace('A Baumgartnerstraße','Anton-Baumgartner-Straße')
street = street.replace('A. Baumgartnerstraße','Anton-Baumgartner-Straße')
street = street.replace('Anton Benya Straße','Anton-Benya-Straße')
street = street.replace('Anton Böck Gasse','Anton-Böck-Gasse')
street = street.replace('Anton Brucknergasse','Anton-Bruckner-Gasse')
street = street.replace('Anton Bruckner-Straße','Anton-Bruckner-Straße') # 6300 Wörgl
street = street.replace('Anton-Ehrenfriedstraße','Anton-Ehrenfried-Straße') # 2020 Hollabrunn
street = street.replace('Anton Haglg','Anton-Hagl-Gasse') # Gablitz
street = street.replace('Anton-Hobbinger-Gasse','Anton-Hobbiger-Gasse') # Heidenreichstein
street = street.replace('Anton Keller Weg','Anton-Keller-Weg')
street = street.replace('Anton Kriegergasse','Anton-Krieger-Gasse')
street = street.replace('Anton Mühlbacherstraße','Anton-Mühlbacher-Straße')
street = street.replace('Anton Regner-Straße','Anton-Regner-Straße')
street = street.replace('Anton Ullrich Gasse','Anton-Ullrich-Gasse') # Heidenreichstein
street = street.replace('A-Weiser Straße','Anton-Weiser-Straße')
street = street.replace('A.W. Pragergasse','Anton-Wenzel-Prager-Gasse')
street = street.replace('Baron Karl Gasse','Baron-Karl-Gasse')
street = street.replace('Bertha V Suttnerstraße','Bertha-von-Suttner-Straße')
street = street.replace('Bgm. Dr.-Haberl Gasse','Bgm.-Dr.-Haberl-Gasse') # Wiener Neustadt
street = street.replace('Bischof Faberplatz','Bischof-Faber-Platz')
street = street.replace('Brunner-Lehensteingasse','Brunner-Lehenstein-Gasse')
street = street.replace('Camillo - Schulzstraße','Camillo-Schulz-Straße') # 4600 Wels
street = street.replace('C Holzmeisterstraße','Clemens-Holzmeister-Straße')
street = street.replace('Carl Maria Von Weberg ','Carl-Maria-von-Weber-Gasse ')
street = street.replace('C.V.Hoetzendorfstraße','Conrad-von-Hötzendorf-Straße')
street = street.replace('Ch. Gudenus Straße','Ch.-Gudenus-Straße') # Hausleiten, eig. Christoph von Gudenus 1688-1800
street = street.replace('Christoph Gudenus Straße','Ch.-Gudenus-Straße') # auch Christoph-Gudenus-Straße
street = street.replace('Dr A Lemisch-Straße','Dr.-Arthur-Lemisch-Straße')
street = street.replace('Dechant Pfeifer Straße','Dechant-Pfeifer-Straße')
street = street.replace('Dechant Pfeiffer Straße','Dechant-Pfeifer-Straße')
street = street.replace('Dr.-Ambros Giner Weg','Dr.-Ambros-Giner-Weg') # 6065 Thaur
street = street.replace('Dr.-Eugen Zehme Straße','Dr.-Eugen-Zehme-Straße') # 5111 Bürmoos
street = street.replace('Dr Fuchs-Gasse','Doktor-Fuchs-Gasse') # 2000 Stockerau
street = street.replace('Dr.-Habermayergasse','Doktor-Habermayer-Gasse') # 2700 Wiener Neustadt
street = street.replace('Dr.Ignaz Weber G.','Dr.-Ignaz-Weber-Gasse ') # 2353 Guntramsdorf
street = street.replace('Dr Karl Rennerstraße','Doktor-Karl-Renner-Straße')
street = street.replace('Dr.-Karl Schrattenbauerweg','Dr.-Karl-Schrattenbauer-Weg')
street = street.replace('Dr Kucherweg','Dr.-Kucher-Weg') # 9061 Klagenfurt
street = street.replace('Dr.-Pascher Straße','Dr.-Pascher-Straße') # 5280 Braunau am Inn
street = street.replace('Dr.-Robert Griedl Weg','Dr.-Robert-Griedl-Weg') # 8301 Laßnitzhöhe
street = street.replace('Dr.R.Schuh-Straße','Dr.-Rudolf-Schuh-Straße')
street = street.replace('Dr.Stumpf Straße','Dr.-Stumpf-Straße')
street = street.replace('Dr.-Theodor-Körner Straße','Dr.-Theodor-Körner-Straße') # 9523 Landskron
street = street.replace('Dr.-Viktor Adler Straße','Dr.-Viktor-Adler-Straße') # 2000 Stockerau
street = street.replace('Eduard-Kittenbergergasse','Eduard-Kittenberger-Gasse')
street = street.replace('Eduard Pötzl Gasse','Eduard-Pötzl-Gasse')
street = street.replace('Erich Friedstraße','Erich-Fried-Straße')
street = street.replace('Erne-Seder Gasse','Erne-Seder-Gasse')
street = street.replace('Ernst Ludwig Gasse','Ernst-Ludwig-Gasse')
street = street.replace('Ernst Mach Straße','Ernst-Mach-Straße')
street = street.replace('Erzherzog Eugen Straße','Erzherzog-Eugen-Straße')
street = street.replace('Erzherzog Eugenstraße','Erzherzog-Eugen-Straße')
street = street.replace('Erzherzog Karl Straße','Erzherzog-Karl-Straße')
street = street.replace('Feldmarschall Conrad Platz','Feldmarschall-Conrad-Platz') # Klagenfurt
street = street.replace('F-Asenbauer-Gasse','Franz-Asenbauer-Gasse')
street = street.replace('Franz Lehar-Gasse','Franz-Lehar-Gasse')
street = street.replace('Fritz Preglgasse','Fritz-Pregl-Gasse')
street = street.replace('Franz Asenbauergasse','Franz-Asenbauer-Gasse')
street = street.replace('Franz Asenbauer-Gasse','Franz-Asenbauer-Gasse')
street = street.replace('Franz Blasser-Straße','Franz-Plasser-Straße') # 5280 Braunau am Inn
street = street.replace('Franz Fischerstraße','Franz-Fischer-Straße') # 6020 Innsbruck
street = street.replace('Franz-Jaenkl-Straße','Franz-Jänkl-Straße')
street = street.replace('Frau Hitt Straße','Frau-Hitt-Straße')
street = street.replace('F.J. Weizeneggerweg','Franz-Josef-Weizenegger-Weg')
street = street.replace('Fred Zinnemannplatz','Franz-Zinnemann-Platz')
street = street.replace('Fridtjof-Nansenstraße','Fridtjof-Nansen-Straße') # 9800 Spittal an der Drau
street = street.replace('Friedrich Attlmayr Straße','Friedrich-Attlmayr-Straße') # 6600 Reutte
street = street.replace('Friedrich Hegel-Gasse','Friedrich-Hegel-Gasse') # 2232 Deutsch-Wagram
street = street.replace('Friedr.Kaiser-Gasse','Friedrich-Kaiser-Gasse')
street = street.replace('Friedrich Schiller Straße','Friedrich-Schiller-Straße') # 2340 Mödling
street = street.replace('Friedrich Schmidt Platz','Friedrich-Schmidt-Platz')
street = street.replace('Friedrich Teller Gasse','Friedrich-Teller-Gasse')
street = street.replace('Georg Bilgeri Straße','Georg-Bilgeri-Straße')
street = street.replace('Georg Lora Straße','Georg-Lora-Straße')
street = street.replace('G.-Grinninger-Straße','Georg-Grinninger-Straße')
street = street.replace('Gerhart Ellertstraße','Gerhart-Ellert-Straße') # 9400 Wolfsberg
street = street.replace('Hans Untermüller Straße','Hans-Untermüller-Straße') # 6020 Innsbruck
street = street.replace('H.V.Hofmannst.Weg','Hugo-von-Hofmannsthal-Weg')
street = street.replace('Heiligenstaedter Straße','Heiligenstädter Straße')
street = street.replace('Heinrich Leflergasse','Heinrich-Lefler-Gasse')
street = street.replace('Herzmanovsky Orlandogasse','Herzmanovsky-Orlando-Gasse')
street = street.replace('Ing Julius Raab-Straße','Ing.-Julius-Raab-Straße')
street = street.replace('Ingenuin-Fischlerstraße','Ingenuin-Fischler-Straße')
street = street.replace('Jakob-Gschielgasse','Jakob-Gschiel-Gasse') # 8052 Graz
street = street.replace('Jakob Wendlergasse','Jakob-Wendler-Gasse') # 8350 Fehring
street = street.replace('Jakob Sereiniggstraße','Jakob-Sereinigg-Straße')
street = street.replace('J.-F.-Perkonig-Straße','Josef-Friedrich-Perkonig-Straße') # 9170 Ferlach
street = street.replace('J.Marbergerstraße','Josef-Marberger-Straße') # 6424 Silz
street = street.replace('J. Fux Straße','Johann-Fux-Straße')
street = street.replace('J.Haagnstraße','Julius-Haagn-Straße')
street = street.replace('Johann Böhmstraße','Johann-Böhm-Straße')
street = street.replace('Joh.Kopfmüllerstraße','Johann-Kopfmüller-Straße') # 5580 Tamsweg
street = street.replace('Johann Neumayer Gasse','Johann-Neumayer-Gasse')
street = street.replace('J. Schmidtstraße','Johann-Schmidt-Straße') # 3512 Mautern an der Donau
street = street.replace('Joh.Schmidtstraße','Johann-Schmidt-Straße') # 3512 Mautern an der Donau
street = street.replace('Johann Weber Straße','Johann-Weber-Straße')
street = street.replace('J.W.Kleinstraße','Johann-Wilhelm-Klein-Straße')
street = street.replace('Johannes Gutenberg Straße','Johannes-Gutenberg-Straße') # Wiener Neustadt
street = street.replace('Josef-Prechtlweg','Josef-Prechtl-Weg') # Braunau am Inn
street = street.replace('Josef Schwarz Straße','Josef-Schwarz-Straße')
street = street.replace('Josef Sirowy-Straße','Josef-Sirowy-Straße')
street = street.replace('Kaiserschuetzenstraße','Kaiserschützenstraße')
street = street.replace('Kaiser Max Straße','Kaiser-Max-Straße') # 6060 Hall in Tirol
street = street.replace('K.Billerhartstraße','Karl-Billerhart-Straße')
street = street.replace('Karl Schwarz Straße','Karl-Schwarz-Straße')
street = street.replace('Karl Steiger-Straße','Karl-Steiger-Straße')
street = street.replace('Konr.Hopferwieserg.','Konrad-Hopferwieser-Gasse ')
street = street.replace('Kuno-Brandauerstraße','Kuno-Brandauer-Straße')
street = street.replace('Laaer Berg Straße','Laaer-Berg-Straße')
street = street.replace('Laaerbergstraße','Laaer-Berg-Straße')
street = street.replace('Laaerberg Straße','Laaer-Berg-Straße')
if (city == 'Sollenau'):
street = street.replace('Gartst.M.The.Laercheng','Lärchengasse 5') # qrz.com
city = 'Gartenstadt Maria Theresia'
street = street.replace('Leonard Bernstein Straße','Leonard-Bernstein-Straße')
street = street.replace('L. Kunschakgasse','Leopold-Kunschak-Gasse') # 2225 Zistersdorf
street = street.replace('Ludo Hartmanngasse','Ludo-Hartmann-Gasse')
street = street.replace('Ludwig Laab Straße','Ludwig-Laab-Straße') # 2000 Stockerau
street = street.replace('Margaretengtl','Margaretengürtel')
street = street.replace('Mautner-Markhofgasse','Mautner-Markhof-Gasse')
street = street.replace('Maurer Lange-Gasse','Maurer Lange Gasse')
street = street.replace('Mayr-Melnhofstraße','Mayr-Melnhof-Straße') # 8700 Leoben
if (city == 'Bregenz'):
street = street.replace('Michael Gaismeierstraße','Michael-Gaismayr-Straße') # typo # Bregenz, in Innsbruck Gaismair
street = street.replace('Michl Felder Straße','Michl-Felder-Straße')
street = street.replace('Michl Felderstraße','Michl-Felder-Straße')
street = street.replace('M Unterlercher-Straße','Michael-Unterlercher-Straße')
street = street.replace('M Wachberger Straße','Michael-Wachberger-Straße')
if (city == 'Kapfenberg'):
street = street.replace('Mühlbacherstraße','Anton-Mühlbacher-Straße')
street = street.replace('Nico Dostal Straße','Nico-Dostal-Straße')
if (city == 'Braunau am Inn'):
street = street.replace('Pascherstraße','Dr.-Pascher-Straße')
street = street.replace('Nikolaus Pfeifaufstraße','Nikolaus-Pfeifauf-Straße') # 6200 Jenbach
street = street.replace('Per Albin Hanssonstraße','Per-Albin-Hansson-Straße')
street = street.replace('Peter Altenberg-Gasse','Peter-Altenberg-Gasse')
street = street.replace('Peter Anich Straße','Peter-Anich-Straße') # 6300 Wörgl
street = street.replace('Peter Henleinweg','Peter-Henlein-Weg')
street = street.replace('Peter Jordanstraße','Peter-Jordan-Straße')
street = street.replace('Peter Pfenningerstraße','Peter-Pfenninger-Straße')
street = street.replace('Pfarrer Matz Gasse','Pfarrer-Matz-Gasse')
street = street.replace('Prinz Eugen Straße','Prinz-Eugen-Straße')
street = street.replace('Prinz Eugenstraße','Prinz-Eugen-Straße')
street = street.replace('Raaberbahngasse','Raaber-Bahn-Gasse')
street = street.replace('Richard Straussgasse','Richard-Strauss-Gasse')
street = street.replace('Richard Wagnergasse','Richard-Wagner-Gasse')
street = street.replace('Robert Ahlfeld Straße','Robert-Ahlfeld-Straße') # 2000 Stockerau
street = street.replace('Robert-Häuserstraße','Robert-Häuser-Straße') # 2544 Leobersdorf/Siebenhaus
street = street.replace('Robert Kochstraße','Robert-Koch-Straße') # 4600 Wels
street = street.replace('Rudolf Waisenhorn-Gasse','Rudolf-Waisenhorn-Gasse')
street = street.replace('Schuettelstraße','Schüttelstraße')
street = street.replace('Sebastian Bauer Straße','Sebastian-Bauer-Straße')
street = street.replace('St. Bartholomäusplatz','St.-Bartholomäus-Platz')
street = street.replace('St.Gerold Weg','Sankt-Gerold-Weg') # 6830 Brederis
street = street.replace('Theodor Koernerstraße','Theodor-Körner-Straße') # 8010 Graz
street = street.replace('Theodor Storm Straße','Theodor-Storm-Straße') # 8041,8042 Graz
street = street.replace('Th. Pampichler-Straße','Theresia-Pampichler-Straße') # 2000 Stockerau
street = street.replace('Thomas Edisonstraße','Thomas-Edison-Straße')
street = street.replace('Thomas Morusgasse','Thomas-Morus-Gasse')
street = street.replace('Tuerkenstraße','Türkenstraße')
street = street.replace('Veichtlbauerweg','Johann-Veichtlbauer-Weg') # 4910 Ried im Innkreis
street = street.replace('Viktor Dankl Straße','Viktor-Dankl-Straße') # 6020 Innsbruck
street = street.replace('Weissgerberlände','Weißgerberlände')
street = street.replace('Wilhelm Kressplatz','Wilhelm-Kreß-Platz')
if (city == 'Deutsch-Wagram'):
street = street.replace('Wilhelm Kressgasse','Wilhelm-Kress-Gasse') # Deutsch-Wagram
else:
street = street.replace('Wilhelm Kressgasse','Wilhelm-Kreß-Gasse') # Wien 22, Guntramsdorf, Pressbaum
street = street.replace('Wladimir Kolda Gasse','Wladimir Kolda-Gasse') #3400 Klosterneuburg
# Streets with location names
street = street.replace('Alser-Straße','Alser Straße')
street = street.replace('Altenbergerstraße','Altenberger Straße')
street = street.replace('Altmannsdorferstraße','Altmannsdorfer Straße')
street = street.replace('Atzgersdorferstraße','Atzgersdorfer Straße')
street = street.replace('Breitenfurterstraße','Breitenfurter Straße')
street = street.replace('Breitenleerstraße','Breitenleer Straße')
street = street.replace('Breitenseerstraße','Breitenseer Straße')
street = street.replace('Dresdnerstraße','Dresdner Straße')
street = street.replace('Feldkirchnerstraße','Feldkirchner Straße')
street = street.replace('Freistaedterstraße','Freistädter Straße')
street = street.replace('Freistädterstraße','Freistädter Straße')
street = street.replace('Gaalerstraße','Gaaler Straße') # 8720 Knittelfeld
street = street.replace('Gerasdorferstraße','Gerasdorfer Straße')
street = street.replace('Groedigerstraße ','Grödiger Straße ')
street = street.replace('Grödigerstraße','Grödiger Straße')
street = street.replace('Gumpendorferstraße','Gumpendorfer Straße')
street = street.replace('Harmannsdorferstraße','Harmannsdorfer Straße')
street = street.replace('Heiligenstädterstraße','Heiligenstädter Straße')
street = street.replace('Hermannstädterweg','Hermannstädter Weg') # 9020 Klagenfurt
street = street.replace('Hetzendorferstraße','Hetzendorfer Straße')
street = street.replace('Hörtendorferstraße','Hörtendorfer Straße')
street = street.replace('Italienerstraße','Italiener Straße')
street = street.replace('Jedleseerstraße','Jedleseer Straße')
street = street.replace('Josefstädterstraße','Josefstädter Straße')
street = street.replace('Kahlenbergerstraße','Kahlenberger Straße')
street = street.replace('Kagranerplatz','Kagraner Platz')
street = street.replace('Kaiserebersdorferstraße','Kaiserebersdorfer Straße')
street = street.replace('Kirchbergerstraße','Kirchberger Straße')
street = street.replace('Königstetterstraße','Königstetter Straße')
street = street.replace('Korneuburgerstraße','Korneuburger Straße') # 2103 Langenzersdorf
street = street.replace('Krottendorferstraße','Krottendorfer Straße') # 2103 Langenzersdorf
street = street.replace('Langenzersdorferstraße','Langenzersdorfer Straße')
street = street.replace('Leobendorferstraße','Leobendorfer Straße') # 2100 Unterrohrbach
street = street.replace('Lerchenfelderstraße','Lerchenfelder Straße')
street = street.replace('Liesingerstraße','Liesinger Straße') # 3012 Wolfsgraben
street = street.replace('Linzerstraße ','Linzer Straße ')
street = street.replace('Mattighofenerstraße','Mattighofner Straße') # typo ! Braunau am Inn
street = street.replace('Millstätterstraße','Millstätter Straße') #9523 Landskron (Villach)
street = street.replace('Münchnerstraße','Münchner Straße') # 6100 Seefeld in Tirol
street = street.replace('Neudorferstraße','Neudorfer Straße')
street = street.replace('Nußdorferstraße','Nußdorfer Straße')
street = street.replace('Ottakringerstraße','Ottakringer Straße')
street = street.replace('Penzingerstraße','Penzinger Straße')
street = street.replace('Pischeldorferstraße','Pischeldorfer Straße') # 9020 Klagenfurt
street = street.replace('Pontlatzerstraße','Pontlatzer Straße')
street = street.replace('Schillingsdorferstraße','Schillingsdorfer Straße')
street = street.replace('Schönbrunnerstraße','Schönbrunner Straße')
street = street.replace('Schweizerstraße','Schweizer Straße') # 2020 Hollabrunn
street = street.replace('Sechshauserstraße','Sechshauser Straße')
street = street.replace('Speisingerstraße','Speisinger Straße')
street = street.replace('Stammersdorferstraße','Stammersdorfer Straße')
street = street.replace('Stockerauerstraße','Stockerauer Straße') # 2100
street = street.replace('Strassganger Straße','Straßganger Straße')
street = street.replace('St. Veiterstraße','St. Veiter Straße')
street = street.replace('St.-Veiter-Straße','St. Veiter Straße')
street = street.replace('Traundorferstraße','Traundorfer Straße')
street = street.replace('Vösendorferstraße','Vösendorfer Straße')
street = street.replace('Währingerstraße','Währinger Straße')
street = street.replace('Waidhofnerstraße','Waidhofner Straße')
street = street.replace('Weimarerstraße','Weimarer Straße')
street = street.replace('Wienerstraße','Wiener Straße')
street = street.replace('Wr Neustädterstraße','Wiener Neustädter Straße')
return street,city
def corr_city(city,postal_code):
city = city.replace('Aigen Im Mühlkreis','Aigen-Schlägl') # Gemeinde Aigen im Mühlkreis und Schlägl 2015 zusammengelegt
city = city.replace('Aigen/Muehlkr.','Aigen-Schlägl')
#city = city.replace('Alberndorf In Der Riedmark','Alberndorf in der Riedmark')
city = city.replace(' In Der ',' in der ')
#city = city.replace('Allerheiligen Bei Wildon','Allerheiligen bei Wildon')
city = city.replace(' Bei ',' bei ')
#city = city.replace('Altenberg Bei Linz','Altenberg bei Linz')
#city = city.replace('Altenmarkt An Der Triesting','Altenmarkt an der Triesting')
city = city.replace(' An Der ',' an der ')
#city = city.replace('Altenmarkt Im Pongau','Altenmarkt im Pongau')
city = city.replace(' Im ',' im ')
# city = city.replace('Altenmarkt','Altenmarkt an der Triesting') # does not work, use:
if (city == 'Altenmarkt'): city = 'Altenmarkt an der Triesting'
city = city.replace('Altmuenster','Altmünster')
#city = city.replace('Annaberg Im Lammertal','Annaberg im Lammertal')
#city = city.replace('Arzl Im Pitztal','Arzl im Pitztal')
#city = city.replace('Aschach An Der Donau','Aschach an der Donau')
city = city.replace('Aschau/,Zillertal','Aschau')
#city = city.replace('Bad Goisern Am Hallstättersee','Bad Goisern am Hallstättersee')
city = city.replace(' Am ',' am ')
if (city == 'Bad Goisern'): city = 'Bad Goisern am Hallstättersee'
#city = city.replace('Bad Sankt Leonhard Im Lavanttal','Bad Sankt Leonhard im Lavanttal')
#city = city.replace('Breitenfurt Bei Wien','Breitenfurt bei Wien')
if (city == 'Breitenfurt'): city = 'Breitenfurt bei Wien'
#city = city.replace('Bruck An Der Leitha','Bruck an der Leitha')
city = city.replace(' An Der ',' an der ')
#city = city.replace('Bruck An Der Mur','Bruck an der Mur')
#city = city.replace('Bruck Am Ziller','Bruck am Ziller')
#city = city.replace('Brunn Am Gebirge','Brunn am Gebirge')
#city = city.replace('Brunn An Der Wild','Brunn an der Wild')
#city = city.replace('Bubendorf Im Burgenland','Bubendorf im Burgenland')
city = city.replace(' Im ',' im ')
if (city == 'Dellach'): city = 'Dellach im Drautal'
if (city =='Fliess'): city = 'Fließ'
#city = city.replace('Hadersdorf Am Kamp','Hadersdorf am Kamp')
#city = city.replace('Hall In Tirol','Hall in Tirol')
city = city.replace(' In ',' in ')
#city = city.replace('Laa An Der Thaya','Laa an der Thaya')
if (city == 'Rohrbach'): city = 'Rohrbach-Berg'
#city = city.replace('Sankt Jakob Im Rosental','Sankt Jakob im Rosental')
#city = city.replace('Sankt Marein Bei Graz-Markt','Sankt Marein bei Graz')
#city = city.replace('Sankt Veit An Der Glan','Sankt Veit an der Glan')
#city = city.replace('Schwarzau Am Steinfeld','Schwarzau am Steinfeld')
#city = city.replace('Steindorf Am Ossiacher See','Steindorf am Ossiacher See')
#city = city.replace('Steinhaus Am Semmering','Steinhaus am Semmering')
if (city == 'Uttendorf' and postal_code == '5261'):
city = 'Helpfau-Uttendorf'
# TYPO
city = city.replace('Breittenfurt','Breitenfurt')
city = city.replace('Bsichofshofen','Bischofshofen')
city = city.replace('Maria-Anzbach','Maria Anzbach') # Namensänderung der Marktgemeinde 2022 Landesgesetzblatt Nr. 44/2022
city = city.replace('Sankt Andrä/Wördern','Sankt Andrä-Wördern')
city = city.replace('St.Andrä-Wördern','Sankt Andrä-Wördern')
city = city.replace('Sankt Andrä Wördern','Sankt Andrä-Wördern')
city = city.replace('Waidhofen/Ybbs','Waidhofen an der Ybbs')
#city = city.replace('Wr.Neustadt','Wiener Neustadt')
city = city.replace('Wr Neustadt','Wiener Neustadt')
city = city.replace('Wörther See','Wörthersee')
# Postleitzahl Änderungen
if (postal_code == '8071' and city == 'Gössendorf'): postal_code = '8077'
if (postal_code == '6064'): postal_code = '6063' # Postamt Rum Dorf aufgelassen, nur mehr 6063
if (postal_code == '6020' and city == 'Rum'): postal_code = '6063' # Serlesstraße in Rum
return city, postal_code
def call_postal_code(location, address, verbose):
street = address
if location == '' or location[0] == '*':
return '', '', street
p = location.split(' ',1)
if isinteger(p[0]) and int(p[0]) > 1000 and int(p[0]) < 10000:
postal_code = p[0]
city, postal_code = corr_city(p[1].strip(),postal_code)
street,city = corr_street(address,city)
else:
postal_code, city, street = call_change_city(location, address, verbose)
# street = corr_street(street)
# add city and street to the database
return postal_code, city, street
def call_data_record(line, mod_date, verbose, cur):
# we have to split the record with a cost-intensive regular expression
@ -330,6 +959,7 @@ def call_data_record(line, mod_date, verbose, cur):
assert(len(records) == 5)
# OE Call:
call = records[0]
call = fix_call(call,verbose)
match = re.search(r'^(OE[0-9][A-Z]{1,3})', call)
assert(match.string == call)
fullname = records[1]
@ -360,26 +990,36 @@ def call_data_record(line, mod_date, verbose, cur):
print(f'Call: {call}, Name: {fullname}, Gender: {gender}')
else:
print(f'Call: {call}, First Name: {firstname}, Surname: {surname}, Gender: {gender}')
print(f'Location: {location}, Address: {address}, Permit: {permit_class}')
created = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
call_data_record.cnt += 1 # increment the User_id
user_id = call_data_record.cnt
# print(created)
statement = "INSERT INTO `callbook_user`(`user_id`,`call`,`firstname`,`surname`,`gender`,`created`,`modified`) VALUES (%s, %s, %s, %s, %s, %s, %s)"
data = (user_id,call,firstname,surname,gender,created,created)
try:
# cur.execute(f"INSERT INTO `callbook_user` (`call`,`firstname`,`surname`,\
# `created`,`created_by`,`modified`,`modified_by`,`active`)\
# VALUES ('{call}','{firstname}','{surname}','{created}','0','{created}','0','{created}');")
# cur.execute(f'INSERT INTO `callbook_user` (`call`) VALUES ("{call}");')
cur.execute(statement, data)
except mariadb.Error as e:
print(f'\n[WARN] MySQLError during execute statement\n\tArgs: {e.args}')
except Exception as e:
print('Error: {}'.format(e), file=sys.stderr)
statement = f'SELECT `call`, `firstname`, `surname`, `gender` FROM `callbook_user` WHERE `call` = "{call}" AND `active` = 1'
cur.execute(statement)
result = cur.fetchall()
if not result:
postal_code,city,street = call_postal_code(location, address, verbose)
statement = "INSERT INTO `callbook_address`(`location`,`address`,`postal_code`,`city`,`street`) VALUES (%s,%s,%s,%s,%s)"
data = (location,address,postal_code,city,street)
try: cur.execute(statement, data)
except mariadb.Error as e:
print(f'\n[WARN] MySQLError during execute statement\n\tArgs: {e.args}')
except Exception as e:
print('Error: {}'.format(e), file=sys.stderr)
statement = "INSERT INTO `callbook_user`(`user_id`,`call`,`firstname`,`surname`,`gender`,`created`,`modified`,`address_id`) VALUES (%s, %s, %s, %s, %s, %s, %s, LAST_INSERT_ID())"
data = (user_id,call,firstname,surname,gender,created,created)
try:
cur.execute(statement, data)
except mariadb.Error as e:
print(f'\n[WARN] MySQLError during execute statement\n\tArgs: {e.args}')
except Exception as e:
print('Error: {}'.format(e), file=sys.stderr)
else:
for r in result:
print(f'Call: {call} {firstname} {surname} {gender} <- ')
call_data_record.cnt = 0
@ -426,11 +1066,39 @@ def exec_sql_file(cursor, sql_file):
statement = ''
else:
statement += line
except FileNotFoundError:
print(f'The file {path} was not found.')
except Exception as e:
print('Error: {}'.format(e), file=sys.stderr)
def call_create_database(configdb):
database = configdb.get('database','callbook')
print(f'Try to create the database "{database}" (if you have enough privileges)')
conn = mariadb.connect(
host = configdb.get('host','127.0.0.1'),
user = configdb.get('user','om'),
password = configdb.get('password','oe3tkt')
)
# create a cursor object
cur = conn.cursor()
# creating database
try:
cur.execute('CREATE DATABASE ' + database)
except mariadb.Error as e:
print(f'\n[ERROR] MySQLError during execute statement\n\tArgs: {e.args}')
sys.exit(5)
cur.execute('SHOW DATABASES')
databaseList = cur.fetchall()
#for database in databaseList:
# print(database)
if not databaseList:
conn.close()
sys.exit(5)
cur.execute('USE ' + database)
return conn
if __name__ == '__main__':
args = call_parser()
config = call_configparser()
@ -444,20 +1112,25 @@ if __name__ == '__main__':
sys.exit(1)
try:
configdb = config['MariaDB'] # fetch from config file, then do with fallbacks:
conn = mariadb.connect(
user = 'om',
password = 'oe3tkt',
host='127.0.0.1',
port=3306,
database='callbook'
user = configdb.get('user', 'om'),
password = configdb.get('password','oe3tkt'),
host = configdb.get('host','127.0.0.1'),
port = configdb.getint('port',3306),
database = configdb.get('database','callbook')
)
except mariadb.Error as e:
print(f'Error connectiong to MariaDB platform: {e}')
sys.exit(5)
conn = call_create_database(configdb)
print(f'Connected to MariaDB API Version {mariadb.mariadbapi_version}.')
print(datetime.datetime.now(datetime.UTC))
# Get Cursor
cur = conn.cursor()
cur.execute('SELECT VERSION()')
print(cur.fetchone()[0])
sql_file = '.sql_init'
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), sql_file)
exec_sql_file(cur, path)

40
afu/ols.st.com.md Normal file
View File

@ -0,0 +1,40 @@
Dear Sir,
unfortunately, your advice was not successful.
All downloads do work except the one with "STM32CubeIDE-Lnx","STM32CubeIDE Generic Linux Installer" Version 1.16.0, which I need for Arch Linux.
I tried the following:
FAILS
=====
1. From IP account 195.140.136.89 (provider oja.at) in Austria
1.1. STm account: oe1tkt@gmail.com (Thomas Kuschel):
a) Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
b) Google Chrome 126.0.6478.182(Official Build)(64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
c) Firefox 128.0.2 (64-bit) on Windows 10 Education Version 22H2, 19045.4651 build, ThinkPad Lenova, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
d) Google Chrome 126.0.6478.182 (Offizieller Build)(64-Bit) on Windows 10 Education Version 22H2, 19045.4651 build, ThinkPad Lenova, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
1.2. STm account: thomas@kuschel.at (Thomas Kuschel), a new registration at ST:
a) Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
b) Google Chrome 126.0.6478.182(Official Build)(64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
2. From IP account 159.69.109.101 (provider Hetzner) in Germany
2.1. STm account: oe1tkt@gmail.com (Thomas Kuschel):
a) Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
b) Google Chrome 126.0.6478.182(Official Build)(64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
3. From IP account 195.140.136.89 in Austria via WiFi connection
3.1 STm account: oe1tkt@gmail.com (Thomas Kuschel)
via GalaxyS20 Ultra 5G - smart phone, Android Version 13; SM-G988B Build/TP1A.220624.013 Kernel 4.19.87
a) Google Chrome App Version 126.0.6478.123, STM32CubeIDE-Lnx V1.16.0 download does NOT work,
SUCCESSFUL downloads with other Versions of STM32CubeIDE:
========================================================
1. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-DEB V1.16.0 work
2. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Mac V1.16.0 work
3. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-RPM V1.16.0 work
4. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Win V1.16.0 work
5. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.15.1 work
6. Firefox 128.0 (64-bit) on Arch Linux 6.9.9 kernel, Dell Notebook, STM32CubeIDE-Lnx V1.15.0 work

5
afu/todo.md Normal file
View File

@ -0,0 +1,5 @@
# This is a list of TODOs for the callbook script
# 2024-07-01
OE2OL Ing. Johann Hörl, mit der Adresse Hallwang, Zilling 101, unbekannter Adresse, vermutlich frühere Wohnadresse mit Haus Nr. 101
OE2PHO, DI Peter Hauber ist mit einer deutschen Adresse eingetragen: Bayerisch Gmain, Großgmainer Straße 5C -> Postleitzahl: D-83457
OE2WAP Waldauf Alexander Salzburg Scherzhauserfeldstr, vermutlich die Nr. 36 (OE2YMO Waldauf Maria)

View File

@ -0,0 +1,184 @@
# Installation on Dell XPS 9570
# Connect to Internet
# Sync clock
timedatectl set-ntp true
# Create three partitions:
# 1 512MB EFI partition # Hex code ef00
# 2 rest Linux partiton # Hex code 8300
cgdisk /dev/nvme0n1
# Format EFI partition
mkfs.vfat -F 32 -n BOOT /dev/nvme0n1p1
o=compress=lzo,space_cache,noatime,ssd
o_btrfs=$o,defaults,x-mount.mkdir
# mount -t btrfs /dev/nvme0n1p2 /mnt
# Create BTRFS subvolumes + mount directories
btrfs subvolume create root
btrfs subvolume create home
btrfs subvolume create snapshots
btrfs subvolume create tmp
btrfs subvolume create opt
btrfs subvolume create var
umount /mnt
# Mount BTRFS subvolumes
mount -o subvol=root,$o_btrfs /dev/mapper/root /mnt
mount -o subvol=home,$o_btrfs /dev/mapper/root /mnt/home
mount -o subvol=snapshots,$o_btrfs /dev/mapper/root /mnt/.snapshots
mount -o subvol=tmp,$o_btrfs /dev/mapper/root /mnt/tmp
mount -o subvol=opt,$o_btrfs /dev/mapper/root /mnt/opt
mount -o subvol=var,$o_btrfs /dev/mapper/root /mnt/var
# Mount EFI partition
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
# Install the base system plus a few packages
pacstrap /mnt base base-devel btrfs-progs zsh neovim git sudo iwd
genfstab -Up /mnt >>/mnt/etc/fstab
# Verify and adjust /mnt/etc/fstab
# Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD)
arch-chroot /mnt
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
localectl set-locale LANG=en_US.UTF-8
# Setup time
ln -s /usr/share/zoneinfo/America/Newyork etc/localtime
hwclock --systohc --localtime
# Set locale
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# set hostname
echo xcloud >/etc/hostname
echo '127.0.0.1 xcloud xcloud.localdomain' > /etc/hosts
echo '::1 xcloud xcloud.localdomain' > /etc/hosts
# Set password for root
passwd
# Add real group / user
groupadd -g 1001 <groupname>
useradd -m -g '<groupname>' -G users,wheel,audio,video -s /bin/zsh '<username>'
passwd '<username>'
echo '<username> ALL=(ALL) ALL' > /etc/sudoers.d/<username>
# Configure mkinitcpio with modules needed for the initrd image
vi /etc/mkinitcpio.conf
# remove HOOK "fsck", add "keymap encrypt" before "filesystems":
# HOOKS="base udev autodetect modconf block btrfs keymap encrypt filesystems keyboard"
# Regenerate initrd image
mkinitcpio -p linux
# Setup systemd-boot
bootctl --path=/boot install
# Enable Intel microcode updates
pacman -S intel-ucode
/boot/loader/entries/arch.conf
---
title Arch Linux Encrypted
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=<cryptdevice-UUID>:root root=UUID=<root-UUID> rootflags=subvol=@ rw
---
# Set default bootloader entry
---
/boot/loader/loader.conf
---
default arch
timeout 4
editor 0
---
###
### Useful services
###
pacman -S acpid ntp avahi cups cronie
systemctl enable acpid
systemctl enable ntpd
systemctl enable avahi-daemon
systemctl enable org.cups.cupsd.service
systemctl enable cronie
systemctl enable systemd-timesyncd.service
systemctl start systemd-timesyncd.service
pacman -S networkmanager
pacman -S network-manager-applet
systemctl enable NetworkManager
pacman -S bash-completion
vi /etc/modprobe.d/modprobe.conf
# content:
# blacklist psmouse
###
### X11 / Gnome
###
pacman -S xorg-server xorg-xinit
pacman -S xf86-video-intel
pacman -S alsa-utils alsa-tools pulseaudio pavucontrol nm-connection-editor
pacman -S gnome gnome-extra gdm
pacman -S chromium emacs openssh
# exit arch-chroot
exit
# cleanup EFI-bootmanager entries
efibootmgr
efibootmgr -b 0 -B # e.g. remove Boot0000
# unmount all filesystems
umount -R /mnt
reboot
###
### Yaourt
###
# Installation from AUR
# install package-query first:
curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
tar -xvzf package-query.tar.gz
cd package-query
makepkg -si
# then yaourt itself:
cd ..
curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/yaourt.tar.gz
tar -xvzf yaourt.tar.gz
cd yaourt
makepkg -si
systemctl start gdm

View File

@ -0,0 +1,124 @@
## Create a Bootlabe Windows 10 USB Drive using LINUX Arch
A manual from the site [adamsdesk](https://kb.adamsdesk.com/operating_system/create_a_bootable_windows_10_usb_using_linux/), was adapted to my needs.
*Version 1.0*
### Prerequisite
#### Assumptions
* Instructions using Arch Linux
* USB drive with a minimum of 8 GB
* Steps prefixed with "$" represents the CLI prompt with normal user access rights
* Steps prefixed with "#" represents the CLI prompt with root access rights
#### Preparation
Install the following packages from the Arch Linux distribution
```
$ yay -Sy ms-sys ntfs-3g rsync
```
### Instructions
1. Download the latest Windows ISO from Microsoft [here](https://www.microsoft.com/en-us/software-download/windows10ISO),
2. Plug in the USB flash drive,
3. Locate the USB device name:
```
$ lsblk
```
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 5,7G 0 loop /mnt/iso
sda 8:0 1 7,5G 0 disk
└─sda1 8:1 1 7,5G 0 part
nvme0n1 259:0 0 1,8T 0 disk /
```
4. Unmount the UB flash drive:
```
# umount /dev/sda1
```
5. Create USB flash drive partition:
```
# fdisk /dev/sda
```
a.) Press `D` then press `<ENTER>` to delete all partitions,
b.) Press `N` then press `<ENTER>` to create a new partition,
c.) Press `<ENTER>` to accept default (p for primary),
d.) Press `<ENTER>` to accept default partition number, 1,
e.) Press `<ENTER>` to accept default first sector,
f.) Press `<ENTER>` to accept default last sector,
```
Note:
Say yes if prompted for "Do you want to remove the signature".
```
g.) Press `T` then press `<ENTER>` to change partition type,
h.) Press `7` then press `<ENTER>` to set partion type to **HPFS/NTFS/exFAT**,
i.) Press `P` to verify:
```
Disk /dev/sda: 7,5 GiB, 8053063680 bytes, 15728640 sectors
Disk model: Flash Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8bfaef3a
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 15728639 15726592 7,5G 7 HPFS/NTFS/exFAT
```
j.) Press `W` then press `<ENTER>` to write table to disk and exit,
6. Format partition file system to NTFS:
```
# mkfs.ntfs -L win10 /dev/sda1
```
7. Create mount points:
```
# mkdir /mnt/{iso,usb}
```
8. Mount Windows ISO:
```
# mount ~<username>/Downloads/Win10_22H2_English_x16v1.iso /mnt/iso
```
9. Mount USB drive partition:
```
# mount /dev/sda1 /mnt/usb
```
10. Copy files from Windows ISO to USB flash drive using `rsync`:
```
# rsync -avP /mnt/iso/ /mnt/usb/
```
11. Make USB flash drive bootable with:
```
# ms-sys -7 /dev/sda
```
```
Windows 7 master boot record successfully written to /dev/sda
```
12. Run **sync** to ensure all operations have completet,
```
# sync
```
13. Unmount USB flash drive,
```
# umount /mnt/usb
```
14. Unmount Windows ISO,
```
# umount /mnt/iso
```
15. Remove mount point directories:
```
# rm -r /mnt/{iso,usb}
```

151
btrfs-snapshot/btrfs-snapshot Executable file
View File

@ -0,0 +1,151 @@
#!/bin/bash
# By Thomas KUSCHEL <oe1tkt@gmail.com>
# MIT License 2015
VERSION="v6.15"
set -o errexit # to make script exit when a command fails / a.k.a. set -e
# then add "|| true" to commands that you allow to fail.
set -o nounset # to exit when script tries to use undeclared variables / set -u
# set -o xtrace # to trace when gets executed for debugging / a.k.a. set -x
set -o pipefail
SCRIPTNAME=${0##*/}
SCRIPTPATH=$(dirname "$0")
# echo $SCRIPTNAME
# where the btrfs is found (use command: which btrfs)
WHICH="/usr/bin/which"
BTRFS_ALT="/sbin/btrfs"
BTRFS="/usr/local/bin/btrfs"
# Function to install this script:
installation() {
# you have to switch to administrator
#`${WHICH} ${PATHINSTALL}`
PATHINSTALL="/usr/local/bin"
SNAPSYSTEMDCFG="/etc/systemd/system/"
SCRIPTPATH=$(dirname "$0")
# echo "Installation of ${SCRIPTNAME} to ${PATHINSTALL} and create systemd timer/service examples in ${SNAPSYSTEMDCFG}"
read -n 1 -p "Install ${SCRIPTNAME} to ${PATHINSTALL}? [Y/n] " reply;
if [ "$reply" != "" ]; then echo; fi
if [ "$reply" = "${reply#[Nn]}" ]; then
sudo cp $0 ${PATHINSTALL}/${SCRIPTNAME}
fi
read -n 1 -p "Do you want to create systemd timer/service examples in ${SNAPSYSTEMDCFG}? [Y/n] " reply;
if [ "$reply" != "" ]; then echo; fi
if [ "$reply" = "${reply#[Nn]}" ]; then
sudo cp -a ${SCRIPTPATH}/system/. ${SNAPSYSTEMDCFG}.
path=`$WHICH $SCRIPTNAME`
fi
}
deinstallation() {
PATHINSTALL="/usr/local/bin"
read -n 1 -p "Do you want to remove (deinstallation) of ${SCRIPTNAME} in ${PATHINSTALL}? [Y/n] " reply;
if [ "$reply" != "" ]; then echo; fi
if [ "$reply" = "${reply#[Nn]}" ]; then
sudo rm -f ${PATHINSTALL}/${SCRIPTNAME}
fi
}
# Function to display usage:
usage() {
path=`${WHICH} ${SCRIPTNAME}` || installation
if [ -z "${path}" ] ; then
path="/usr/local/bin/"
echo "Please install $SCRIPTNAME to \"$path\""
path="${path}${SCRIPTNAME}"
fi
cat <<EOF
$SCRIPTNAME: Take and rotate snapshots on a btrfs file system
usage: $SCRIPTNAME [--version] source target snap_name count [-q]
source: path to make snaphots of
target: snapshot directory
snap_name: Base name for snapshots, to be appended to
date "+%F-%H%M"
count: Number of snapshots in the timestamp-@snap_name format to
keep at one time for a given snap_name.
[-q]: Be quiet.
--install: Force a new installation of this script.
--version: Print the version of this script,
additionally the version of btrfs-progs.
Example for crontab:
15,30,45 * * * * root $0 /home /snap quarterly 4 -q
0 * * * * root $0 /home /snap hourly 8 -q
Example for anacrontab:
1 15 daily_snap $0 /home /snap daily 8
7 17 weekly_snap $0 /home /snap weekly 5
@monthly 19 monthly_snap $0 /home /snap monthly 3
NEW: If you are using systemd on your linux system, see http://f0x.at/btrfs
EOF
exit
}
if [ ! -f "$BTRFS" ] ; then
if [ -f "$BTRFS_ALT" ] ; then
# fallback
BTRFS="$BTRFS_ALT"
else
echo "$BTRFS system file not found,"
echo "please install btrfs-progs:"
echo "Arch Linux: # sudo pacman -S btrfs-progs"
echo "Debian/Ubuntu: # sudo apt-get install btrfs-tools"
exit
fi
fi
# Basic argument checks:
if [ $# -gt 0 ] && [ "x$1" == "x--version" ] ; then
echo "$SCRIPTNAME $VERSION"
echo `$BTRFS --version`
exit
fi
if [ $# -gt 0 ] && [ "x$1" == "x--install" ] ; then
installation
exit
fi
if [ $# -gt 0 ] && [ "x$1" == "x--deinstall" ] ; then
deinstallation
exit
fi
# Check count of arguments
if [ "$#" -ge 4 ]; then
SOURCE=$1
TARGET=$2
SNAP=$3
COUNT=$4
QUIET=""
if [ "$#" -gt 4 ]; then
QUIET=$5
fi
else
echo "You need some arguments."
usage
fi
if [ $# -gt 5 ] ; then
echo "Too many parameters."
usage
fi
if [ -n "$QUIET" ] && [ "x$QUIET" != "x-q" ] ; then
echo "Parameter 4 is either -q or empty. Given: \"$QUIET\""
usage
fi
# $max_snap is the highest number of snapshots that will be kept for $SNAP.
max_snap=$(($COUNT -1))
# Check if $TARGET already exists - if NOT then create subdir
[ -d $TARGET ] || mkdir $TARGET
# Clean up older snapshots:
for i in `ls $TARGET|sort |grep @${SNAP}|head -n -${max_snap}`; do
cmd="$BTRFS subvolume delete $TARGET/$i"
if [ -z $QUIET ]; then
echo $cmd
fi
$cmd >/dev/null
done
# Create new snapshot:
cmd="$BTRFS subvolume snapshot -r $SOURCE $TARGET/`date "+%F-%H%M-@${SNAP}"`"
if [ -z $QUIET ]; then
echo $cmd
fi
$cmd >/dev/null

View File

@ -0,0 +1,8 @@
[Unit]
Description=rolling snapshot for /home/user
[Service]
Type=oneshot
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7
ExecStart=/usr/local/bin/btrfs-snapshot /home/user /home/snap/user daily 4

View File

@ -0,0 +1,9 @@
[Unit]
Description=daily snapshot
[Timer]
# see systemd.time(7) manual page for other scheduling options
OnCalendar=01:00
# run immediately if we missed a backup for some reason
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -0,0 +1,59 @@
# Installation on Lenovo Think Pad
# Change keyboard layout to German language
loadkeys de-latin1
# Connect to WLAN (standard)
iwctl
[iwd]# device list
jetzt sollte zumindest ein Device z.B. wlan0
aufscheinen.
[iwd]# station wlan0 scan
... ein bisschen warten ...
[iwd]# station wlan0 get-networks
Wenn z.B. das Netzwerk "Kuscheltier" heißt, dann:
[iwd]# station wlan0 connect Kuscheltier
Passphrase: *******
[iwd]# exit
\# ping orf.at
# Connect to EDUROAM eduroam.8021x
Firstly, you have to create a new file at /var/lib/iwd/eduroam.8021x with:
```
cd /var/lib/iwd
nano -cl eduroam.8021x
```
Content of the file:
```
[Security]
EAP-Method=TTLS
EAP-Identity=holo@technikum-wien.at
EAP-TTLS-Phase2-Method=MSCHAPV2
EAP-TTLS-Phase2-Identity=ma0079
EAP-TTLS-Phase2-Password=Ubdaed8.Dtdpmc!
EAP-TTLS-ServerDomainMask=radius.technikum-wien.at
[Settings]
AutoConnect=true
```
# Start the iwctl wireless connection tool
iwctl
[iwd]# device list
# Check the internet connection
ping orf.at
# Start the arch installation script
archinstall
### Locales
Keyboard layout: de-latin1
Locale language: en_DK
Locale encoding: UTF-8
###

View File

@ -9,6 +9,8 @@ website_uri="https://dl.gitea.io/gitea"
file_prefix="gitea"
file_suffix="linux-amd64"
install_dir="/usr/local/bin"
file_gitea="gitea"
temp_folder="temp.gitea.08154711"
# get the latest version with the website_latest uri to github:
website_version_raw=$( curl -Ls -I -o /dev/null -w %{url_effective} ${website_latest} )
@ -31,31 +33,35 @@ if [ "${version}" == "${version_active}" ]
then
echo "Both version strings are the same."
else
echo "There are differnces between the two version strings."
echo "There are differences between the two version strings."
echo "Start updating..."
read -p "Are you sure? (y/N)" -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[YyJj]$ ]]
then
uri=${website_uri}/${version}/${file_prefix}-${version}-${file_suffix}
wget -O gitea --show-progress ${uri}
wget -O gitea.sha256 ${uri}.sha256
mkdir -p ${temp_folder}
cd ${temp_folder}
wget -O ${file_gitea} --show-progress ${uri}
wget -O ${file_gitea}.sha256 ${uri}.sha256
# strip gitea
sha256check=$( echo "$(cat gitea.sha256 | awk '{ print $1 }') gitea" | sha256sum --check )
sha256check=$( echo "$(cat ${file_gitea}.sha256 | awk '{ print $1 }') ${file_gitea}" | sha256sum --check )
echo ${sha256check}
check=$( echo ${sha256check} | awk '{ print $2 }' )
if [ "${check}" == "OK" ]
then
echo "SHA256 was checked and verified OK"
sudo install --owner=git --group=git --mode=755 --strip gitea ${install_dir}
sudo install --owner=git --group=git --mode=755 --strip ${file_gitea} ${install_dir}
else
echo "There was a failure in the SHA256 file check."
fi
# remove local files:
rm gitea gitea.sha256
rm ${file_gitea} ${file_gitea}.sha256
cd ..
rmdir ${temp_folder}
fi
fi