Skip to content
This repository has been archived by the owner on Jul 9, 2024. It is now read-only.

Workaround für Generierung von Vermittlungscodes #459

Merged
merged 14 commits into from
Jun 14, 2021

Conversation

jonasmock
Copy link
Contributor

@jonasmock jonasmock commented Jun 14, 2021

Vermittlungscode Anfrage via Selenium.

Wenn im SessionStorage "ets_session_its_cv_quick_check" = {"birthdate":"'+ data["birthday"] +'","slotsAvailable":{"pair":true,"single":false}} gesetzt ist, kann impftermine/check direkt aufgerufen werden.

Anschließend automatisch mail und phone eingeben und Anfrage in Selenium stellen.
Um die Antwort aus Selenium lesen zu können wurde selenium-wire verwendet.

Das ist erstmal nur ein Entwurf.
Kann bitte jemand prüfen ob so ein Vermittlungscode erzeugt werden kann ? (Habe das Anfrage Limit erreicht und online Handynummern / sms scheinen nicht mehr zu gehen)

Falls nach der Eingabe des SMS codes wieder 429 kommt muss der sms code eventuell auch in selenium eingegeben werden. Das konnte ich noch nicht testen.

@TRojaner2013
Copy link
Contributor

Mit manueller Hilfe habe ich einen Code erstellen können. Damit das funktioniert, musste ich noch auf Cookies akzeptieren klicken. Ansonsten konnte der Button nicht gedrückt werden und es wurde ohne Fehlermeldung abgebrochen - den dafür Verantwortlichen Teil im Code habe ich eben markiert.

if request.url == location:
res = request.response
break
driver.close()

if res.status_code == 429:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sofern die Schleife ohne Ergebnis durchlaufen wird, git es hier folgenden Fehler:
'NoneType' object has no attribute 'status_code'

Prüfe am besten einmal, ob res noch None ist.

@jonasmock
Copy link
Contributor Author

@TRojaner2013 Könntest du es eventuell nochmal testen bitte. Bei mir hat es mit den beiden Änderungen jetzt funktioniert. Das Browser-Fenster sollte sich automatisch schließen. Anschließend kann man den SMS-Code ganz normal in Vaccipy eingeben.

@TRojaner2013
Copy link
Contributor

TRojaner2013 commented Jun 14, 2021

Ich bekomme das gerade leider nicht getestet, da der am Warteraum scheitert, ich würde das eher in die richtung lösen:

           requests = driver.requests

            if not location in requests.url:
                self.log.info("Keine Antwort vom Server erhalten.")

            for request in requests:
                if request.url == location:
                    res = request.response
                    break

Bei der momentanen Umsetzung hängst du sonst in der Schleife, wenn du keine Antwort bekommst.Bei mir oben sollte vllt. noch ein Retry-Counter rein.

tools/its.py Outdated
Comment on lines 1069 to 1075
# Klick auf "Auswahl bestätigen" im Cookies-Banner
button_xpath = "//a[contains(@class,'cookies-info-close')][1]"
button = WebDriverWait(driver, 1).until(
EC.element_to_be_clickable((By.XPATH, button_xpath)))
action = ActionChains(driver)
action.click(button).perform()
time.sleep(0.5)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beim Warteraum gibt es bei mir Problemein Zeile 1071.

@jonasmock
Copy link
Contributor Author

@TRojaner2013 Kommst du jetzt durch den Warteraum ?

@pancakeDevelopment
Copy link
Contributor

code

@jonasmock Klasse Arbeit! Gerade ausprobiert, direkt im ersten Anlauf hat es funktioniert! 👍🏼

@timreibe
Copy link
Owner

@jonasmock ich würde ungern voreilig die alte Code-Gen-Methode rauswerfen, kannst du deine Methode in eine neue Funktion packen, die irgendwie selenium_code_anfordern heißt, oder so? Haben wir auch bei der Terminbuchung so gemacht

@jonasmock
Copy link
Contributor Author

jonasmock commented Jun 14, 2021

@iamnotturner Kann ich machen. 👍🏻 Komme aber wahrscheinlich erst heute Nachmittag / Abend nach der Arbeit dazu.

@jonasmock
Copy link
Contributor Author

jonasmock commented Jun 14, 2021

Habe noch ein paar Mausbewegungen hinzugefügt. Das dauert dann zwar länger, aber wenn man das zu oft und so schnell macht kommt auch hier "Ein unerwarteter Fehler ist aufgetreten". Die Funktion ist ja auch nicht dazu gedacht, dass sich jeder 100 Codes generiert.

@hra-fel
Copy link

hra-fel commented Jun 14, 2021

Hallo @jonasmock
leider klappt es mit deinem aktuellen branch nicht:
2021-06-14 20:14:43.174 impfterminservice [inf] [ ] Simulation der Mausbewegungen gestartet. Von: (821, 484) nach (387, 792) Traceback (most recent call last): File "C:\vaccipy_2\main.py", line 615, in <module> main() File "C:\vaccipy_2\main.py", line 517, in main subcommand_code(args) File "C:\vaccipy_2\main.py", line 426, in subcommand_code gen_code_interactive(args.file) File "C:\vaccipy_2\main.py", line 346, in gen_code_interactive return gen_code(kontaktdaten) File "C:\vaccipy_2\main.py", line 384, in gen_code token, cookies = its.selenium_code_anfordern( File "C:\vaccipy_2\tools\its.py", line 1182, in selenium_code_anfordern action.click(button).perform() File "C:\Users\XXXXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\common\action_chains.py", line 80, in perform self.w3c_actions.perform() File "C:\Users\XXXXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\common\actions\action_builder.py", line 76, in perform self.driver.execute(Command.W3C_ACTIONS, enc) File "C:\Users\XXXXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\XXXXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document (Session info: chrome=91.0.4472.101)

Das Fenster bleibt bei der Eingabe von Mail + Mobilnummer stehen.
Gibt man es von Hand ein, bekommt man die SMS, jedoch klappt dann die Verifizierung nicht.

@jonasmock
Copy link
Contributor Author

@hra-fel Kannst du es nochmal probieren und 30 Sekunden Warten wenn das Fenster Mail + Mobilnummer da ist. Im Hintergrund bewegt sich dann die Maus automatisch. Das dauert ein bisschen. Wenn du manuell Mail + Mobilnummer eingibst springst du auf die nächste Seite, auf der das Programm dann nicht mehr die Buttons findet zum anklicken und abbricht.

@jonasmock
Copy link
Contributor Author

Vielleicht funktioniert das auch im Headless Modus. Für den User ist das schon sehr verlockend seine Sachen da einzugeben, statt abzuwarten. Weil auf den ersten Blick nichts passiert.

@hra-fel
Copy link

hra-fel commented Jun 14, 2021

@jonasmock dann klappts, Danke.
War zu ungeduldig bzw. hab vermutlich den Cookie Banner weggeklickt.

@Sylwuscha
Copy link

Gibt es, wenn die neue Code-Generierung läuft, einen Link zum Download bzw. einen Weg für Dummies? ;-)

@mdohrn
Copy link

mdohrn commented Jun 14, 2021

Gibt es, wenn die neue Code-Generierung läuft, einen Link zum Download bzw. einen Weg für Dummies? ;-)

Branch von @jonasmock benutzen. https://github.com/JonasMock/vaccipy/tree/fix_vcode_generation

Allerdings bin ich mir nicht sicher, ob dort die Terminbuchung funktioniert. Bis jetzt ging es bei mir nicht.

In tools/its.py driver_get_cookies wird nämlich noch ein alter Code für den Cookie generiert
random_code = f"VACC-IPY{random_chars[0]}-{random_chars[1:]}"

Evt. wurde gegen VACC-IPY* was unternommen? Bin grad am testen und muss mich mal bisschen in den Code reinlesen.

@hra-fel
Copy link

hra-fel commented Jun 14, 2021

Terminbuchung klappt nicht, HTTP 429

Aber die manuelle Buchung hat anschließend geklappt.

2021-06-14 21:21:14.671 impfterminservice [inf] [74549 74585 74613] Browser-Cookie generiert: *0h+w== 2021-06-14 21:21:16.925 impfterminservice [err] [74549 74585 74613] Termin konnte nicht gebucht werden: 429 {} 2021-06-14 21:21:16.925 impfterminservice [inf] [74549 74585 74613] Starte zweiten Versuch über Selenium ... 2021-06-14 21:21:16.941 impfterminservice [inf] [74549 74585 74613] Termin über Selenium buchen 2021-06-14 21:21:18.027 impfterminservice [inf] [74549 74585 74613] Vermittlungscode eintragen und Mausbewegung / Klicks simulieren. Dieser Vorgang kann einige Sekunden dauern. 2021-06-14 21:21:18.733 impfterminservice [inf] [74549 74585 74613] Simulation der Mausbewegungen gestartet. Von: (0, 0) nach (252, 355) 2021-06-14 21:21:24.854 impfterminservice [inf] [74549 74585 74613] Simulation der Mausbewegungen gestartet. Von: (252, 355) nach (387, 792) 2021-06-14 21:21:32.211 impfterminservice [inf] [74549 74585 74613] Simulation der Mausbewegungen gestartet. Von: (387, 792) nach (260, 268) 2021-06-14 21:21:34.366 impfterminservice [inf] [74549 74585 74613] Simulation der Mausbewegungen gestartet. Von: (260, 268) nach (167, 405) 2021-06-14 21:21:51.799 impfterminservice [inf] [74549 74585 74613] Simulation der Mausbewegungen gestartet. Von: (167, 405) nach (359, 470) 2021-06-14 21:22:01.437 impfterminservice [err] [74549 74585 74613] Termine können nicht gesucht werden 2021-06-14 21:22:05.550 impfterminservice [err] [74549 74585 74613] Termine können nicht ausgewählt werden 2021-06-14 21:22:06.698 impfterminservice [err] [74549 74585 74613] Termine können nicht ausgewählt werden (Button) 2021-06-14 21:22:07.766 impfterminservice [err] [74549 74585 74613] 1. Daten können nicht erfasst werden 2021-06-14 21:22:08.801 impfterminservice [err] [74549 74585 74613] Kontaktdaten können nicht eingegeben werden 2021-06-14 21:22:09.932 impfterminservice [err] [74549 74585 74613] Button ÜBERNEHMEN kann nicht gedrückt werden 2021-06-14 21:22:10.935 impfterminservice [err] [74549 74585 74613] Button Termin buchen kann nicht gedrückt werden

@jonasmock
Copy link
Contributor Author

@mdohrn Mit einem anderen zufälligen Code funktioniert es, da hast du Recht. Wird das in einem anderen PR bereits behoben ?

@timreibe
Copy link
Owner

@jonasmock ist der PR Ready?

@timreibe timreibe merged commit 3829cf6 into timreibe:beta Jun 14, 2021
@Genmutant
Copy link
Contributor

@jonasmock ja der zufällige Code wird in #457 geändert.

timreibe added a commit that referenced this pull request Jun 16, 2021
* feat(search): Wenn angebracht, pausiere Vermittlungscodes (#431)

* fix(Kontaktdaten GUI): fix for pressing Cancel Btn in Kontaktdaten GUI raised error (#436)

* Fix for pressing Cancel Btn in Kontaktdaten GUI raised error

Hier wie man es replizieren kann:
Kontaktdaten.json ist nicht vorhanden
Termin suchen drücken
Kontakdaten ausfüllen kommt
"Abbrechen"
Falsche/Unnötige Fehlermeldung da ja abgebrochen kommtHier wie man es replizieren kann:
Kontaktdaten.json ist nicht vorhanden
Termin suchen drücken
Kontakdaten ausfüllen kommt
"Abbrechen"
Falsche/Unnötige Fehlermeldung da ja abgebrochen kommt

@Floskinner  passt das so?

* Docstring added

* syntax change

* Revert "syntax change"

This reverts commit a6d16c9.

* syntax fix

* Fix for reject() / accept()

Buttons  wurden nicht korrekt zurück gemeldet.

@Floskinner

* fix(gender): added Kind and Divers as gender options (#442)

* Added Kind and Divers (#448)

* feat(code gen GUI): Added 3 retries of SMS PIN (if attempt failed) (#432)

* fix(log): Ensure tools/log paths are constructed portably (#454)

On Linux, the backslash in "tools\log\" was not interpreted as path
separator, so screenshots etc. ended up in the project's root directory,
named "tools\log\<filename>". Now they are named "<filename>" and stored
in the log-directory under tools.

* Don't throw and show error if loading of data was cancelled by the user (#456)

Co-authored-by: Juri <j.robl@osram.com>

* feat(GUI): Sprachsupport, Usability (#455)

* Update .gitignore

Added venv

* Documentation

* added language support and minor improvements

* documentation

* Updated .gitignore

* Update .gitignore

Added venv

Documentation

added language support and minor improvements

documentation

Updated .gitignore

* typos

* Adapt postition zip-code hometown

* fix(cookie-gen): Improve cookie generation / enter v-code with updated mouse simulation (#453)

* Improve mouse simulation for cookies / enter code

* Add requirements for mouse simulation

* Remove unecessary import

* Fix imports

* Remove imports which doesnt work on M1

* Generate coordinates without numpy/scipy

* Update move mouse by offsets func

* Add func to move from source x,y to target x,y

* Improve enter vermittlungscode

* Add mouse movements to driver_enter_code()

* Add second try if "Es ist ein unerwarteter Fehler aufgetreten" occurs

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Fix ugly if

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Update tools/its.py

Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

Co-authored-by: Jonas Mock <jonasmock97@gmail.com>
Co-authored-by: Tim Reibe <38082956+iamnotturner@users.noreply.github.com>

* Added a minimum of 30 seconds for retry-sec/check-delay (#452)

* refactor(search): Rotiere durch PLZs, anstatt Zufallswahl (#444)

* feat(notify): added notification configuration to GUI (#463)

* added notifications to GUI

* added tabstops

* Update tools/gui/qtkontakt.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Workaround für Generierung von Vermittlungscodes (#459)

* Update requirements

* Replace code_anfordern()

* Fix wait for server response before continue

* Accept cookies

* Add queue bypass

* Add retry counter for fetching server response

* Revert from HEAD to 7efe793.

* Add selenium_code_anfordern()

* Replace its.code_anfordern()

* Add logging

* Add specific error messages

* Add mouse simulation

* Enter char by char

* Fix random v-code

Co-authored-by: Jonas Mock <jonasmock97@gmail.com>

* fix(bugs): small bugfixes, added selenium debugging port (#466)

* fix(notifications GUI): Fix for KeyError "notifications" after click Kontaktdaten bearbeiten over GUI (#468)

* Draft for Code gen over GUI

first draft for running Code Gen over GUI

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update qtcodegen.py

* Thread cancel optimization

break while loops if stop called

* update now checking missing kontakt data

showing dialog to generate kontaktdaten if not present

* remove help icon

* added  CodeGEn Checkbox to Kontaktdaten

for now it just simply adds a XXXX dummy code to prevent code validation error (since it is not yet known )

* Update qtcodegen.py

* Update qtcodegen.py

* Revert "added  CodeGEn Checkbox to Kontaktdaten"

This reverts commit 3bf7b6f.

* added QtCodeGen to SubProcess

added QtCodeGen to SubProcess  because Impfterminservice is blocking  the Thread for termination

* adapted to mainline beta and further improvements

READY to TEST

* Update main.py

* Update utils.py

* Update qtcodegen.py

hard exit if cancelled

* Revert "Update main.py"

This reverts commit 8f082c5.

* file permission fix

git update-index --chmod=+x main.py under windows

* File permissin change revert

* Update gui.py

small rearrangment

* Update tools/gui/qtcodegen.py

THX

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* keep all data kontaktdaten.json and just set a dummy code for code gen task

Rework to keep all data in kontaktdaten.json and just set a dummy code for code gen task if not file is present.

Also added checks if kontaktdaten edit fenster was cancelled to not run processes.

Also do a full validation check on input also if mode CODE_GENERIEREN, to have a valid config file

* Update gui.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update gui.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update qtkontakt.py

changes from @Floskinner  added

* Revert "Merge branch 'beta' into ownBeta"

This reverts commit cb67518, reversing
changes made to 7e719ec.

* Revert "Revert "Merge branch 'beta' into ownBeta""

This reverts commit fe4d9f5.

* logger conflicts with redirect of qtgui

* added fix from TIm Reibe

* Added 3 Input Dlg retries if SMS PIN  was wrong

Change allows a wrong input of smspin and if code failed to accept the pin will be asked again

* Fix for keyerror in GUI (Kontaktdaten bearbeiten) with old file

tools\gui\qtkontakt.py", line 362, in __lade_alle_werte
    if kontaktdaten['notifications']:
KeyError: 'notifications'

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* fix missing add-data in create spec for version.txt

* selenium-wire hooks for pyinstaller

* feat(notifications): Fire notification as soon as an appointment was found (#474)

* Added title to telegram notification message

* Fire notification as soon as an appointment was found

* Added possibility to move the mouse negative values (#458)

* Added possibility to move the mouse negative values

* - Refactored, moved mouse movement and path generation to own file mousemover.py

* - Reordered imports

* - Fix calls to move_mouse_to_coordinates

Co-authored-by: Juri <j.robl@osram.com>

* feat(GUI): Verbesserte Oberfläche im Modus CODE_GENERIEREN  (#471)

* Update .gitignore

Added venv

* Improved Kontaktdateneingabe (CodeGen))

Verbesserung der UX.
Felder wurden deaktiviert,
Ladefunktion unterstüzt nun CodeGen

* select correct tab

* typo

* added default arguments

* Improve selenium vcode generation (#480)

* Add second try if "Es ist ein unerwarteter Fehler aufgetreten"

* Improve selenium_code_anfordern

* Close browser if error occurs

* Fixed unable to locate element

* Fix unable to locate element #2

* Fix 'CLogger' object has no attribute 'warning'

* Prevent unable locate sms_verifizierung_h1 after successful request

* Cleaned up main

Co-authored-by: Jonas Mock <jonasmock97@gmail.com>

* fix(seleniumwire): added chrome_options to selenium-wire, added selenium-wire certificates (#485)

* added chrome_options to seleniumwire, pep8 changes

* added seleniumwire certificates

* fix(PR #480 crahsed GUI): added selenium code generation to GUI (#486)

* Draft for Code gen over GUI

first draft for running Code Gen over GUI

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update qtcodegen.py

* Thread cancel optimization

break while loops if stop called

* update now checking missing kontakt data

showing dialog to generate kontaktdaten if not present

* remove help icon

* added  CodeGEn Checkbox to Kontaktdaten

for now it just simply adds a XXXX dummy code to prevent code validation error (since it is not yet known )

* Update qtcodegen.py

* Update qtcodegen.py

* Revert "added  CodeGEn Checkbox to Kontaktdaten"

This reverts commit 3bf7b6f.

* added QtCodeGen to SubProcess

added QtCodeGen to SubProcess  because Impfterminservice is blocking  the Thread for termination

* adapted to mainline beta and further improvements

READY to TEST

* Update main.py

* Update utils.py

* Update qtcodegen.py

hard exit if cancelled

* Revert "Update main.py"

This reverts commit 8f082c5.

* file permission fix

git update-index --chmod=+x main.py under windows

* File permissin change revert

* Update gui.py

small rearrangment

* Update tools/gui/qtcodegen.py

THX

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* keep all data kontaktdaten.json and just set a dummy code for code gen task

Rework to keep all data in kontaktdaten.json and just set a dummy code for code gen task if not file is present.

Also added checks if kontaktdaten edit fenster was cancelled to not run processes.

Also do a full validation check on input also if mode CODE_GENERIEREN, to have a valid config file

* Update gui.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update tools/gui/qtcodegen.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update gui.py

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* Update qtkontakt.py

changes from @Floskinner  added

* Revert "Merge branch 'beta' into ownBeta"

This reverts commit cb67518, reversing
changes made to 7e719ec.

* Revert "Revert "Merge branch 'beta' into ownBeta""

This reverts commit fe4d9f5.

* logger conflicts with redirect of qtgui

* added fix from TIm Reibe

* Added 3 Input Dlg retries if SMS PIN  was wrong

Change allows a wrong input of smspin and if code failed to accept the pin will be asked again

* Fix for keyerror in GUI (Kontaktdaten bearbeiten) with old file

tools\gui\qtkontakt.py", line 362, in __lade_alle_werte
    if kontaktdaten['notifications']:
KeyError: 'notifications'

* fix(PR #480 crahsed GUI)

Merged changes to GUI from : #480

Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>

* bugfix notifications not working in GUI (#487)

* fix(master): merge master into beta (#490)

* Update README.md

* Update README.md

* Create CONTRIBUTING.md

* Update README.md

* Update CONTRIBUTING.md

* Added Kind and Divers (#437)

Kind and Divers are now also selectable ,)

* Revert "Added Kind and Divers (#437)" (#443)

This reverts commit 996878c.

* Update README.md

Co-authored-by: Julius Jacobitz <47418007+JuliusJacobitz@users.noreply.github.com>
Co-authored-by: IAmWebSA <webmaster@zutroll.de>

Co-authored-by: haslersn <sebastian.hasler@gmx.net>
Co-authored-by: IAmWebSA <webmaster@zutroll.de>
Co-authored-by: Andreas Wachowski <andreas.wachowski@gmail.com>
Co-authored-by: Genmutant <github@jurirobl.de>
Co-authored-by: Juri <j.robl@osram.com>
Co-authored-by: Alex <a.suhrkamp@gmx.de>
Co-authored-by: Jonas Mock <info@jonasmock.de>
Co-authored-by: Jonas Mock <jonasmock97@gmail.com>
Co-authored-by: Timo <43381667+pancakeDevelopment@users.noreply.github.com>
Co-authored-by: Marco Rombach <36333308+marcorombach@users.noreply.github.com>
Co-authored-by: Florian Glaser <58706771+Floskinner@users.noreply.github.com>
Co-authored-by: JuliusJacobitz <julius@jacobitz.de>
Co-authored-by: Julius Jacobitz <47418007+JuliusJacobitz@users.noreply.github.com>
Co-authored-by: Sebastian Nagel <nagels@informatik.uni-tuebingen.de>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants