Git Product home page Git Product logo

dijnet-dump's People

Contributors

bitvilag avatar connorhu avatar gezapeti avatar halacs avatar hunhejj avatar juhaszp-uhu avatar martonivan avatar sandor-balazsi avatar wolandmaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dijnet-dump's Issues

macOS Sierra alatt nem enged be

Szia,

macOS 10.12 alatt a login nem működik, nem találja meg az adott stringet a wget-tel letöltött htmlben. Kicsit mókoltam vele és kisült, hogy a html latin2-ben jön le. On-the-fly konvertálva (iconv) utf8-ra simán működött.

IroNiQ

Pontra végződő szolgáltatónév

Cygwin mkdir nem tudja a mappát létrehozni, ha a szolgáltató neve pont (.) karakterre végződik.
Példa: FV Zrt.

Workaround: TARGET_FOLDERben a ${PROVIDER} végére odabiggyesztünk valamilyen karaktert.

Script nem találja a számlákat

Vélhetően megváltozott a módi, ahogy a díjnet a számlákat listázza, mert már nincsenek <a> linkek a táblázat celláiban, hanem onclick attribútumokat tesznek a cellákra. A számlákra mutató linkek és a végső letöltőlinkek nem változtak, az a része működik, csak éppen nem jutott el odáig.

Nekem ezzel a módosítással működött:

diff --git a/dijnet-dump.sh b/dijnet-dump.sh
index 4bbce3b..2cfaa9e 100755
--- a/dijnet-dump.sh
+++ b/dijnet-dump.sh
@@ -75,8 +75,9 @@ echo "${PROVIDERS}" | grep -o "value" | wc -w
 for ID in $(echo "${PROVIDERS}" | xpath '//option/@value' | sed 's/value="\([^"]*\)"/\1 /g'); do
   PROVIDER=$(echo "${PROVIDERS}" | xpath "//option[@value=${ID}]/text()" | sed 's/&\([a-zA-Z]\)[a-zA-Z]*;/\1/g')
   INVOICES=$(dijnet "control/szamla_search_submit" "vfw_form=szamla_search_submit&vfw_coll=szamla_search_params&szlaszolgid=${ID}" \
-           | xpath '//table[contains(@class, "szamla_table")]/tbody/tr/td[1]/a/@href' \
-           | sed 's/href="\([^"]*\)"/\1 /g;s/\&amp;/\&/g;s/\/ekonto\/control\///g')
+           | xpath '//table[contains(@class, "szamla_table")]/tbody/tr/td[1]/@onclick' \
+           | sed 's/onclick="xt_cell_click(this,.//g;s/.)"//g;s/\&amp;/\&/g;s/\/ekonto\/control\///g')
+
   INVOICE_COUNT=$(echo "${INVOICES}" | wc -w)
   INVOICE_INDEX=1
   for INVOICE in ${INVOICES}; do

ERROR: not able to select invoice

szia, evek ota boldog hasznaloja vagyok ennek a remek eszkoznek, halas koszonet erte:).

sajnos iden nem igazan boldogulok.

szamlak letoltese kozben, NEM mindig ugyanott, elszall a kovetkezo keppen:
@login03:~/dijnet_foutca/dijnet-dump$ ./dijnet-dump.sh
login... OK
query service providers... 6
hint: install "pv" package for a nice progress bar
download "Vodafone Cégcsoport", total: 11, current: 4ERROR: not able to select invoice

neha rogton az elso szamlanal, neha a 4-iknel, neha a masodik szolgaltatonal.

csak nalam van problema?

a kornyezet vmi egyetemi linux cluster node-ja, szoval lehet nem a leg up-to-date-ebb, de tavaly mukodott.
dijnet dump a latest masterrol jon.

koszonom elore is ha megnezed!

login... ERROR: login failed

login... ERROR: login failed
Befejeződött

Ezt kapom, gondolom azért mert megint variáltak rajta, valaki megtudná nézni mi baja?

Kiterjesztés nélküli HTML állományok

Egyes célkönyvtárakban találtam sok kiterjesztés nélküli szamla_pdf?1111, szamla_teho_pdf?1111 meg teho_all_pdf?1111 állományokat, amik mind HTML állományok. Gondolom a wget szedheti le és utána nem került kitörlésre, mert szamla.pdf, teho.pdf és teho_all.pdf állományok is vannak, tehát úgy tűnik letölti őket. Ezért gondolom, hogy csak PDF letöltés után nem került törlésre. Nem mindegyik könyvtárban van, nem találtam ránézésre összefüggést miért van vagy miért nincs.

macOS: nem megy a bejelentkezés

Nem működik macOS-en a bejelentkezés, hiába próbálok ki bármit:

Monarakh:dijnet-dump segabor$ ./dijnet-dump.sh -d ********
password: *******
login... 
ERROR: login failed ()

Ugyanez működik Linux alól. Erős a gyanúm, hogy esetünkben a sed-del lesz a gond, mivel ez sem ugyanaz (Linux vs BSD). Mindjárt feltelepítek egy GNU sed-et macOS-re és kipróbálom azzal.

login failed

Hali!

Megint valami gondja van :( (évekig működik, aztán behal)

login... HTTP/1.1 406 Not Acceptable
Date: Thu, 11 Aug 2022 08:51:28 GMT
Content-Type: text/html
Content-Length: 156
Connection: close
Server: HTTP-Server
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin
Strict-Transport-Security: max-age=31536000
Front-End-Https: on
Set-Cookie: HAPROXY_SESSION=as11|YvTDE; path=/; HttpOnly; Secure

ERROR: login failed ()

OpenWrt / LEDE hibak

OpenWrt es LEDE alatt vannak hibak:

  • OpenWrt 19.07: Nem megy az unaccent, ezert ekezetes mappakba kerulnek a letoltott szamlak, de a letoltes alapvetoen mukodik.
  • LEDE 17.01: Nem megy az invoice_data kiolvasasa, ezert nem sikerul osszerakni a TARGET_FOLDER-t, igy nem tolt le semmit.
  • OpenWrt 15.05: Komoly hibak vannak, szerintem a busybox-os sed nem boldogul az utf-8-al es persze gnu sed nincs a repo-ban.

Vodafone cégcsoportot nem tölti

$ ./dijnet-dump.sh X
password:
login... OK
query service providers... 1

Log vége:

  • grep -c sopts.add
  • command -v pv
  • sed -n 's/.var ropts\s=\s*[(.)];./\1/;s/},\s*{/}\n{/gp'
  • read -r PROVIDER_JSON
  • rm /tmp/tmp.71UZxKEgMZ

A
sed -n 's/.var ropts\s=\s*[(.)];./\1/;s/},\s*{/}\n{/gp'
nem stimmel rá, Ezek az értékek (az ügyfélszámokat kinulláztam):

var sopts = new Set();
        sopts.add('\''Vodafone C.gcsoport'\'');


ropts = [{"aliasnev":"UPC (0000000000)","szlaszolgnev":"Vodafone C.gcsoport","regszolgid":000000000,"ugyfelazon":"0000000000","statusgrp":40,"szolgid":210,"alias":"UPC"}];

Vegyes nevű letöltések

Az unaccent funkció bevezetése óta a letöltések ékezetes és ékezet mentes módon is megtalálhatóak. Jó lenne, ha lenne olyan opció, hogy az ékezetes megoldás maradjon, így a korábbi letöltésekhez kerülnének az újabbak (és engem nem zavarnak az ékezetek :) ).

macOS: ./dijnet-dump.sh: line 74: readarray: command not found

macOS Catalinán a következő hibát dobja a szkript:

login... Warning: Failed to set locale category LC_NUMERIC to en_HU.
Warning: Failed to set locale category LC_TIME to en_HU.
Warning: Failed to set locale category LC_COLLATE to en_HU.
Warning: Failed to set locale category LC_MONETARY to en_HU.
Warning: Failed to set locale category LC_MESSAGES to en_HU.
OK
query service providers... ./dijnet-dump.sh: line 74: readarray: command not found
ERROR: not able to detect service providers
Terminated: 15
Monarakh:dijnet-dump segabor$ Warning: Failed to set locale category LC_NUMERIC to en_HU.
Warning: Failed to set locale category LC_TIME to en_HU.
Warning: Failed to set locale category LC_COLLATE to en_HU.
Warning: Failed to set locale category LC_MONETARY to en_HU.
Warning: Failed to set locale category LC_MESSAGES to en_HU.

Ebből nekem az jött le, hogy a readarray beépített parancs nem része a macOS-en telepített bash-nek. Mint kiderült, ez egy bash 4-es újítás, ami Mac-en nincs, mert megállt a 3.2.57(1)-release verziónál.

Letöltés a többi fül alól

Letöltendő fájlok nemcsak az adott számla "Letöltés" fülén vannak, hanem pl. az "Információ" fül alatt.
Ezeket is szeretném archiválni. Köszönöm!

Példa 1:
FV Zrt. számlák "Információ" fülén (control/szamla_info#tab_szamla_info) a "Terhelési összesítő hátoldala" dokumentum (/control/teho_info_pdf).

Példa 2:
Telekom szolgáltató esetén a "Hívásrészletező" fülén (control/szamla_reszletek#tab_szamla_reszletek) a csatolmány (/control/hivasreszletezo_csv)

függőség ellenőrzés

A UX ;) jegyében, a script futás előtt ellenőrizhetné a szükséges külső programok meglétét.

Nem találja a szolgáltatók listáját és kilép

Ma le akartam tölteni a számláim és kilép a program, 'ERROR: not able to detect service providers' szöveggel die-ol. Amire jutottam, hogy az ekonto/control/szamla_search oldalt ha böngészőben nyitom meg, akkor benne van a szolgáltatólista és a sopts.add sorok, viszont a script futtatásakor, a debug kimenetben semmi ilyen sincs benne, ezért a hiba. A böngésző agent-et megnézem és bemásoltam a konfigurációba, tehát azonos a böngésző és a script esetén. Esetleg dinamikusan tölthetik be a listát?

macOS: "fura" letöltés sorok

A csatolt képen látszik, hogy a kiadott ESC szekvenciák nem értelmezettek, mert a

xargs -n 1 echo -ne "\033[2K\rdownload \"${PROVIDER_NAME}\", total: ${INVOICE_COUNT}, current:"; echo
sorban az xargs után álló echo parancs nem a bash beépített függvénye, hanem helyette a macOS / BSD alapértelmezett /bin/echo parancsa hívódik meg, az pedig nem tud mit kezdeni a színekkel.

dijnet-macos-download

A futtató fájl (dijnet-dump.sh) hibásan azonosítja a könyvtárat (benne a config fájlt), amennyiben linkelve van

Kedves fejlesztők!

Az én rendszeremen a git-es kódok egy könyvtárban vannak tárolva, és a helyi bin könyvtáramban linkekkel mutatok a kellő rendszerességgel futtatott kódokra.

A pillanatnyi master változathoz az alábbi javítást javasolnám, hogy ilyen esetekben megtalálja a helyes könyvtárat:

21c21
<   pushd . >/dev/null && cd "$(dirname "$(readlink -f "$1")")" && pwd -P && popd >/dev/null
---
>   pushd . >/dev/null && cd "$(dirname "$1")" && pwd -P && popd >/dev/null

Azonban Cygwin-es környezetben azt látom a neten, hogy többeknek problémája van a readlink-el.
A StackOverflow-ról ezt a megoldást látom alkalmasnak: csak a Windows-os ágat definiálva + a fenti readlink csak az egyéb (*) rendszereknél alkalmazva.

Köszönettel:
Gyuri

query service providers... ERROR: not able to detect service providers

Felraktam ezt:
sudo apt-get install libxml2-utils

Viszont futtatáskor ez a hibaüzenet jön, és nem tölti le a számlákat. Történt valami változás dijnet oldalán az elmúlt 4 hónapban?


www.dijnet.hu (www.dijnet.hu) feloldása… 91.198.198.5
Csatlakozás a következőhöz: www.dijnet.hu (www.dijnet.hu)[91.198.198.5]:443… kapcsolódva.
HTTP kérés elküldve, várakozás válaszra… 200 OK
Hossz: nincs megadva [text/html]
Mentés ide: „STDOUT”

-                                           [ <=>                                                                         ]  14,56K  --.-KB/s    in 0s

2019-04-06 13:19:17 (56,3 MB/s) -- szabványos kimenetre mentve [14908]

OK
query service providers... --2019-04-06 13:19:17--  https://www.dijnet.hu/ekonto/control/szamla_search
www.dijnet.hu (www.dijnet.hu) feloldása… 91.198.198.5
Csatlakozás a következőhöz: www.dijnet.hu (www.dijnet.hu)[91.198.198.5]:443… kapcsolódva.
HTTP kérés elküldve, várakozás válaszra… 200 OK
Hossz: nincs megadva [text/html]
Mentés ide: „STDOUT”

-                                           [ <=>                                                                         ]  20,55K  --.-KB/s    in 0,001s

2019-04-06 13:19:18 (20,4 MB/s) -- szabványos kimenetre mentve [21043]

ERROR: not able to detect service providers
Befejeződött

service providers not found

helló, nálam a kurrens verzió ezt mondja:

login... OK
query service providers... ERROR: not able to detect service providers
Terminated

  • pedig van két aktív és két megszűnt providerem. mit tudok tenni?

dijnet-dump.sh: line 74: syntax error near unexpected token `<'

1 év után Synology DSM 6.2.2-re telepítettem ezeket a szükséges libraryket:
sudo ipkg install libxml2 libxslt

Login működik, de rögtön erre a hibára fut:

login... OK
query service providers... dijnet-dump.sh: line 74: syntax error near unexpected token `<'
dijnet-dump.sh: line 74: `readarray -t PROVIDERS < <(dijnet "control/szamla_search" | perl -lne '/sopts.add\(.(.+?).\)/ and print $1')'

Hiányzik esetleg még valami az libxml2 libxslt-n kívül? Az 1 évvel ezelőtti fájlal ugyanez a hiba, de azt raspbianon futtattam, azóta az nyugdíjba vonult.

macOS: brew (re)install dependencies

Currently, brew install "reinstall" already installed dependencies:

Step 16/21 : RUN printf '%s\n'       '#!/bin/bash'       'PRODUCT_VERSION=$(awk -F"[<>]" "/ProductVersion/ { getline; print \$3 }" \'       '  /usr/local/libexec/darling/System/Library/CoreServices/SystemVersion.plist)'       '[[ "${PRODUCT_VERSION}" == "10.14" ]] && PRODUCT_NAME="mojave"'       '[[ "${PRODUCT_VERSION}" == "10.15" ]] && PRODUCT_NAME="catalina"'       '[[ "${PRODUCT_VERSION}" == "11.0"  ]] && PRODUCT_NAME="big_sur"'       '[[ -z "${PRODUCT_NAME}" ]] && echo "unknown macOS version" && exit 1'       'while (($#)); do'       '  FORMULA=$(wget -qO- "https://formulae.brew.sh/api/formula/$1.json")'       '  jq -r ".bottle.stable.files.${PRODUCT_NAME}.url" <<<"${FORMULA}" \'       '  | xargs wget --show-progress --progress=bar:force -qO "$1.tar.gz"'       '  tar --strip-components=2 -xf "$1.tar.gz" && rm "$1.tar.gz"'       '  set -- "$@" $(jq -r ".dependencies | @tsv" <<<"${FORMULA}")'       '  shift'       'done' > /usr/local/bin/brew_install     && chmod a+x /usr/local/bin/brew_install     && brew_install bash libxml2 wget
 ---> Running in bd3fba03aa63
bash.tar.gz         100%[===================>]   2.98M  --.-KB/s    in 0.06s   
libxml2.tar.gz      100%[===================>]   2.43M  --.-KB/s    in 0.05s   
wget.tar.gz         100%[===================>]   1.43M  --.-KB/s    in 0.09s   
[email protected]   100%[===================>]  16.62M  51.1MB/s    in 0.3s    
readline.tar.gz     100%[===================>] 535.63K  --.-KB/s    in 0.01s   
libidn2.tar.gz      100%[===================>] 233.29K  --.-KB/s    in 0.008s  
[email protected]  100%[===================>]   5.39M  --.-KB/s    in 0.1s    
gdbm.tar.gz         100%[===================>] 203.29K  --.-KB/s    in 0.007s  
[email protected]  100%[===================>]   5.39M  --.-KB/s    in 0.1s    
readline.tar.gz     100%[===================>] 535.63K  --.-KB/s    in 0.01s   
sqlite.tar.gz       100%[===================>]   1.96M  --.-KB/s    in 0.05s   
tcl-tk.tar.gz       100%[===================>]   8.50M  51.4MB/s    in 0.2s    
xz.tar.gz           100%[===================>] 386.79K  --.-KB/s    in 0.01s   
gettext.tar.gz      100%[===================>]   8.55M  47.9MB/s    in 0.2s    
libunistring.tar.gz 100%[===================>]   1.39M  --.-KB/s    in 0.04s   
readline.tar.gz     100%[===================>] 535.63K  --.-KB/s    in 0.01s   
[email protected]  100%[===================>]   5.39M  --.-KB/s    in 0.1s    
Removing intermediate container bd3fba03aa63

konyvtar es file nevek, es azok sorbarendezese

ha a file es konyvtar nevek elso resze a timestamp lenne valami fix es szabvanyos formatumban (pl 2020-06-08, iso-8601), akkor szepen sorban jonnenek a szamlak idorendben.

nem fontos, csak gondoltam bedobom az otletet.

macOS: readlink parancs probléma

Újabban a következő hibát produkálja a dijnet-dump:

Monarakh:dijnet-dump segabor$ ./dijnet-dump.sh ****
readlink: illegal option -- f
usage: readlink [-n] [file ...]
password: 

Úgy tűnik, a readlink -f macOS-en (talán más BSD variánsokon is) nem értelmezhető. Egy másik projektnél nyitott hibajegyet követve kiderült, hogy stat -f-fel működésre lehet bírni a szkriptet

Login failed

Több gépen is kipróbáltam és mindenütt Login failed hibaüzenetet kapok.
Természetesen ellenőriztem és jó usernév-jelszót adtam meg.

username folder

Lehet, hogy egyedi az eset, de én több fiókot kezelek, ezért jó lenne, ha username szinten is készülne egy folder.
Egy sor módosítás, meg is csináltam, ha esetleg másnak is hasznos lehet, mehet a pull request (https://github.com/hobpet/dijnet-dump/pull/new/master), ha csak nekem hasznos, zárjátok le az issue-t.

UTF-8 hibauzenet

Kiprobaltam az ujrairt kodot es ebben a pillanatban mukodik a letoltes, csak arra az aprosagra szeretnem felhivni a figyelmet, hogy idokozben a dijnet is megerkezett a 21. szazadba, es mar UTF-8 hibauzenetet kuld hibas bejelentkezeskor, es valoszinuleg maskor is. Igy az iconv kulon meghivasa mar nem szukseges, mert azzal egyutt ez lesz a hibauzenetbol:

ERROR: login failed (Sikertelen bejelentkezĂŠs. Ellenorizze adatait ĂŠs prĂłbĂĄlja Ăşjra!)

ERROR: login failed ()

Sziasztok!

Újabban ezt a hibát mondja amikor próbálom letölteni a számlákat.
Semmi nem változott a beállításokon, ugyanazzal a loginnal böngészőből működik.
UserAgent stringet próbáltam módosítani de nem segít.

login... 
ERROR: login failed ()

Nem tölti le a számlákat.

Most frissen lefutatva az eredmény az, hogy az upc nél talál 29 számlát ennek megcsinálja az UPC könyvtárat és létrehoz benne 29 üres könyvtárat szépen elnevezve. A telekom_mobilnál szintén. De csak üres könyvtárak vannak.

login... ERROR: login failed ()

Elhasal mar a belepesnel, a wget a nagy semmivel ter vissza. HAPROXY_SESSION es JSESSIONID cookie azert van. Mersekelten ertem csak, hogy hogy mukodnek az ilyen login formok, igy segitseget kernek a debugolashoz.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.