Autor Thema: Script mit gui für on/off switch der /etc/hosts  (Gelesen 5728 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline vetzki

  • Sr. Mitglied
  • ****
  • Beiträge: 437
  • Dankeschön: 67 mal
  • Skill: Durchschnitt

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 1470
  • Dankeschön: 282 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.19 Artix
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #16 am: 01. April 2017, 14:59:07 »
Hallo barchi,
Der neue vorschauprospekt ist da, hier mal der alte:
www.lidl-pageflip.com/fsicache/pdf/Germany
/FHZ_KW13_ECI_20170322_20170401_ERMs27.pdf

und der neue link:
www.lidl-pageflip.com/Ffsicache/Fpdf/FGermany
/FFHZ_KW14_ECI_20170329_20170408_6r9Xr5.pdf

Leider erfolgt die namensgebung nicht chronologisch,
chronologisch schon (ich ziehe hier mal nur die entsprechenden Teile raus, alt -> neu)
KW13 -> KW14
20170322 -> 20170329 = plus 7 Tage
20170401 -> 20170408 = plus 7 Tage
aber leider ist der Schluss dann offenbar doch eine zufallsgenerierte Zeichenkette: 6r9Xr5
Scheint also tatsächlich nur den Weg zu geben, die Adressen rauszufischen, die mit "https://www.etracker.de/rdirect.php" anfangen und mit ".pdf" aufhören.

Viele Grüße gosia
"funktioniert nicht" ist keine brauchbare Fehlermeldung

Offline vetzki

  • Sr. Mitglied
  • ****
  • Beiträge: 437
  • Dankeschön: 67 mal
  • Skill: Durchschnitt
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #17 am: 01. April 2017, 18:45:25 »
nicht schön sollte aber funktionieren
#!/usr/bin/python3

from urllib.request import urlopen,urlretrieve

chars = {
    "%3A" : ":",
    "%2F" : "/",
    }

keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/Pfad/zur/Datei.pdf"
res = urlopen(url).read().decode()
links = res.split("\n")

link = [ l.split('"'+keyword+'":')[1].lstrip(' ').split('&') for l in links if keyword in l ][0]
link = link[len(link)-1].lstrip('et_url=').strip('",')

for key in chars:
    link = link.replace(key,chars[key])

try:
    urlretrieve(link,filename)
except Exception as e:
    print(str(e))


filename entsprechend anpassen
Folgende Mitglieder bedankten sich: barchi

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #18 am: 01. April 2017, 19:32:59 »
Hallo barchi,chronologisch schon (ich ziehe hier mal nur die entsprechenden Teile raus, alt -> neu)
KW13 -> KW14
20170322 -> 20170329 = plus 7 Tage
20170401 -> 20170408 = plus 7 Tage
aber leider ist der Schluss dann offenbar doch eine zufallsgenerierte Zeichenkette: 6r9Xr5
Scheint also tatsächlich nur den Weg zu geben, die Adressen rauszufischen, die mit "https://www.etracker.de/rdirect.php" anfangen und mit ".pdf" aufhören.

Viele Grüße gosia

da haste jetzt aber die daten falsch gedeutet,

zeitraum alter prospekt:
20170322_20170401 --> 22.03.2017 bis 01.04.2017

zeitraum neuer prospekt:
20170329_20170408 --> 29.03.2017 bis 08.04.2017

Der neue prospekt beginnt am 29.03.2017 während gleichzeitig der alte prospekt noch bis 01.04.2017 läuft.
Chronologisch würde doch eine überschneidungsfreie abfolge bedeuten oder verstehe ich da etwas falsch?

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #19 am: 01. April 2017, 19:41:37 »
ja und was fällt dir auf wenn du z.b. das anschaust ?
"pvupdf1": "https://www.etracker.de/rdirect.php?et=B3gaB9&et_cid=13&et_lid=661679&et_sub=FHZ_KW13_ECI_20170322_20170401_PDF&et_url=http%3A%2F%2Fwww.lidl-pageflip.com%2Ffsicache%2Fpdf%2FGermany%2FFHZ_KW13_ECI_20170322_20170401_ERMs27.pdf"
Mir fällt da leider nichts auf.

nicht schön sollte aber funktionieren
#!/usr/bin/python3

from urllib.request import urlopen,urlretrieve

chars = {
    "%3A" : ":",
    "%2F" : "/",
    }

keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/Pfad/zur/Datei.pdf"
res = urlopen(url).read().decode()
links = res.split("\n")

link = [ l.split('"'+keyword+'":')[1].lstrip(' ').split('&') for l in links if keyword in l ][0]
link = link[len(link)-1].lstrip('et_url=').strip('",')

for key in chars:
    link = link.replace(key,chars[key])

try:
    urlretrieve(link,filename)
except Exception as e:
    print(str(e))


filename entsprechend anpassen
sorry das verstehe ich nicht, welchen "filename" soll ich da anpassen?

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 1470
  • Dankeschön: 282 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.19 Artix
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #20 am: 01. April 2017, 19:59:31 »
Hallo barchi,
da haste jetzt aber die daten falsch gedeutet,
Der neue prospekt beginnt am 29.03.2017 während gleichzeitig der alte prospekt noch bis 01.04.2017 läuft.
Chronologisch würde doch eine überschneidungsfreie abfolge bedeuten oder verstehe ich da etwas falsch?
Naja, Interpretationen sind immer so eine Sache ;) Aber ich denke, Du interpretierst da zuviel rein. Die kümmern sich nicht so sehr um den Beginn und/oder das Ende von Erscheinungszeiträumen, sondern zählen einfach immer eine Woche weiter.
Aber das ist letztlich egal, nimm die Lösung von vetzki, funktioniert wunderbar und sogar ohne daß Du dir Gedanken um Daten machen musst :)

Viele Grüße gosia
"funktioniert nicht" ist keine brauchbare Fehlermeldung

Offline vetzki

  • Sr. Mitglied
  • ****
  • Beiträge: 437
  • Dankeschön: 67 mal
  • Skill: Durchschnitt
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #21 am: 01. April 2017, 20:03:47 »
ich meinte damit das der link zur pdf doch dort "drinsteck"

zu filename:
oben bei "/Pfad/zur/Datei.pdf" entsprechend anpassen
keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/Pfad/zur/Datei.pdf"

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #22 am: 01. April 2017, 20:25:15 »
ich meinte damit das der link zur pdf doch dort "drinsteck"

zu filename:
oben bei "/Pfad/zur/Datei.pdf" entsprechend anpassen
keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/Pfad/zur/Datei.pdf"

sorry, ich verstehe das immer noch nicht. Bin kein Programmierer.

Der link oder pfad zur pdf datei ist doch genau das was gesucht wird,
erschwert wird das ganze durch die sich wöchentlichen ändernden namen/links zur pdf datei.
Und in der lidl_php stehen mehrere links zu verschiedenen pdf dateien.

Offline vetzki

  • Sr. Mitglied
  • ****
  • Beiträge: 437
  • Dankeschön: 67 mal
  • Skill: Durchschnitt
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #23 am: 01. April 2017, 20:43:07 »
das ganze sucht sich (hoffentlich auch kommende wochr noch, denke aber schon) den richtigen link und lädt die pdf datei runter
"/Pfad/zur/Datei.pdf" mit etwas sinnvollem, also einen pfad der bei dir existiert (z.b. /home/DeinBenutzername/lidl_prospekt.pdf), ersetzen
Folgende Mitglieder bedankten sich: barchi

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 1470
  • Dankeschön: 282 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.19 Artix
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #24 am: 01. April 2017, 20:49:33 »
Hallo barchi,
Der link oder pfad zur pdf datei ist doch genau das was gesucht wird,
Mit Pfad zur Datei ist gemeint, wo der Katalog hin soll und wie Du die pdf-Datei nennen willst, also z.B.
keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/home/gosia/LIDL/katalog.pdf"oder
keyword, url, filename = "pvupdf1", "https://addon.lidl.de/json.php", "/tmp/LIDL.pdf"ganz nach Wunsch.

Viele Grüße gosia
"funktioniert nicht" ist keine brauchbare Fehlermeldung
Folgende Mitglieder bedankten sich: barchi

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #25 am: 02. April 2017, 14:25:41 »
Oh mann, sorry hatte es echt nicht verstanden, dachte ich solle wöchentlich den neuen link aus der lidl_php eintragen. :o

Jetzt habe ich es verstanden und den gewünschten Speicherort in das Script eingetragen,
das Script funktioniert super! Es lädt den wöchentlich aktuellen Lidl Katalog als PDF herunter.

Vielen Dank an EUCH beide dass Ihr so geduldig einem begriffsstutzigem weiter geholfen habt  :)

Vielen Dank vetzki für das coole Script, das ist genau das was ich gesucht hatte.
(Jetzt muss ich mir Python mal genauer anschauen, wenn damit so schnell so feine Sachen möglich sind)
« Letzte Änderung: 02. April 2017, 14:40:09 von barchi »

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #26 am: 02. April 2017, 15:24:49 »
Eine letzte Frage habe ich noch. Habe mir folgenden "alias" angelegt
alias lidl='/usr/local/sbin/lidl.sh'Funktioniert einwandfrei.

Da ich etwas schreibfaul bin, lege ich mir gerne passende "keybindings" an, habe z.b. ein bash script geschrieben dass mir den "cache2" Ordner von firefox auf Tastendruck löscht. Dieses liegt in
/usr/local/sbin/emptycache.sh
Wenn ich nun das lidl.sh Script dorthin (/usr/local/sbin/) oder auch (/usr/local/bin/...weil hier z.b. schon youtube-dl als Python Script liegt) als root kopiere und die nötigen Rechte zum ausführen anhake, kann ich es zwar per bash alias ausführen aber das keybinding funktioniert nicht.
Nutze eine puristische Gnome Shell, ohne Erweiterungen oder Gnome Programme.

Aufgefallen ist mir, dass die Erste Zeile der Skripten sich unterscheiden.
emptycache.sh:
#!/bin/bashvs.
lidl.sh:
#!/usr/bin/python3
Das keybinding für das "/usr/local/sbin/emptycache.sh" script funktioniert,
nur das keybinding für "/usr/local/sbin/lidl.sh" nicht. Besitzer und Rechte sind für beide gleich vergeben.
Muss ich da noch etwas in die Kopfzeile des Scripts "/usr/local/sbin/lidl.sh" eintragen?
« Letzte Änderung: 02. April 2017, 15:27:34 von barchi »

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #27 am: 02. April 2017, 15:50:04 »
Habe "/usr/local/sbin/lidl.sh"umbenannt in
"/usr/local/sbin/lidl"Alias funktioniert damit aber das Keybinding nicht.
Mache ich was falsch?
sollte das Python Script vielleicht besser nach
"/usr/local/bin/lidl"Weil dort auch das "youtube-dl" Python Script liegt?


P.S.
Jetzt funktioniert es!
Es gibt doch tatsächlich einen Bug in der Gnome Shell Version 3.22.2.
Wenn man ein eigenes Keybinding anlegt, darf dieses nur am Anfang einen Großbuchstaben haben und keine weiteren, sonst funktioniert es nicht. Wenn alles klein geschrieben wird funktioniert das Keybinding.
« Letzte Änderung: 02. April 2017, 16:05:06 von barchi »

Offline vetzki

  • Sr. Mitglied
  • ****
  • Beiträge: 437
  • Dankeschön: 67 mal
  • Skill: Durchschnitt
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #28 am: 02. April 2017, 17:21:16 »
...
Aufgefallen ist mir, dass die Erste Zeile der Skripten sich unterscheiden.
emptycache.sh:
#!/bin/bashvs.
lidl.sh:
#!/usr/bin/python3...

https://de.wikipedia.org/wiki/Shebang

von gnome keybindings hab ich leider keine ahnung

Zitat
sollte das Python Script vielleicht besser nach
Code: [Auswählen]
"/usr/local/bin/lidl"
Weil dort auch das "youtube-dl" Python Script liegt?

im endeffekt ists egal wo es liegt du könntest z.b. das alias auch entsprechend anpassen oder beim keybinding den enstprechenden pfad verwenden


generell, da python skript, ist imo die dateiendung .py sinnvoll, aber das muss jeder selbst entscheiden
Folgende Mitglieder bedankten sich: barchi

Offline barchi

  • Neuling
  • *
  • Beiträge: 27
  • Dankeschön: 1 mal
  • Desktop: Gnome Version 3.28.2
  • Grafikkarte: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
  • Grafikkartentreiber: i915
  • Kernel: current
  • Prozessor: Intel® Pentium(R) CPU J2900 @ 2.41GHz × 4
  • Skill: Durchschnitt
  • Zweig: stable
Re: Script mit gui für on/off switch der /etc/hosts
« Antwort #29 am: 02. April 2017, 17:55:53 »
Danke Dir für die Infos.

Was schätzt du, wie lange muss man Python lernen um damit effektiv arbeiten (kleinere Skripten) zu können?
Wie lange hast du für die Grundlagen gebraucht?