- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Külföldi prepaid SIM-ek itthon
- Huawei Watch Fit 5 Pro - jó forma
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Bemutatkozott az iQOO első T-szériása
- Kreatív előzetesen az Xperia 1 VIII
- Ismerős lehet az iQOO Pad6 Pro
- Apple Watch
- Poco F8 Ultra – forrónaci
- Xiaomi 15T Pro - a téma nincs lezárva
- djculture: Az elvileg már senkinek nem kellő HDD-k ára is egekbe emelkedett 4 hónap alatt
- MasterDeeJay: Low budget (50.000 forint) light gémer gép összerakása
- bullseye: Clickbait szülinapi sorsolás II - még drágább a clickbaited
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Fűzzük össze a szavakat :)
-
4200 - 4101
4451 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Atomantiii
addikt
-
axioma
veterán
Xml fájlt hogyan tudnék xz formátumba tömöríteni? Találtam egy ilyen kódot, de akárhogy próbálom nálam mindig 0 byte lesz a mérete.
import lzma as xzin_file = open('input.xml', 'rb')input_data = in_file.read()compressed_data = xz.compress(input_data)out_file = open('input.xml.xz', 'wb')in_file.close()out_file.close()Egy out_file.write hivas mindenkepp hianyzik ebbol...
-
Atomantiii
addikt
Xml fájlt hogyan tudnék xz formátumba tömöríteni? Találtam egy ilyen kódot, de akárhogy próbálom nálam mindig 0 byte lesz a mérete.
import lzma as xzin_file = open('input.xml', 'rb')input_data = in_file.read()compressed_data = xz.compress(input_data)out_file = open('input.xml.xz', 'wb')in_file.close()out_file.close() -
zolivissza
senior tag
-
zolivissza
senior tag
-
zolivissza
senior tag
bocs, hogy nem lehet megnyitni, köze annyi van a pythonhoz, hogy a gpt abban írta, amit nem sikerült linkelnem normálisan (kértem, hogy írjon egy asszisztens programot), egy részét idemásolom, így kezdődött:
""Ez egy érdekes feladat. Egy lehetséges megoldás a következő:```python
# Importáljuk a szükséges modulokat
import speech_recognition as sr # A beszéd felismeréséhez
import datetime # A dátum és idő kezeléséhez
import pyttsx3 # A szöveg felolvasásához# Létrehozunk egy SpeechRecognizer objektumot
recognizer = sr.Recognizer()# Létrehozunk egy pyttsx3 objektumot
engine = pyttsx3.init()# Beállítjuk a beszéd sebességét és a hangját
engine.setProperty("rate", 150)
engine.setProperty("voice", "hungarian")# Egy függvény, ami lejátsza a megadott szöveget
def speak(text):
engine.say(text)
engine.runAndWait()# Egy függvény, ami visszaadja a felismert szöveget a mikrofonból
def listen():
with sr.Microphone() as source:
# Csökkentjük a háttérzajt
recognizer.adjust_for_ambient_noise(source)
# Hallgatjuk a felhasználót. stb... -
zolivissza
senior tag
sziasztok. teljesen laikus vagyok, nem tudok programozni, a kérdésemmel kapcsolatban a türelmeteket kérem előre is. androidos telefont használok és szeretnék rá egy magyar nyelven működő asszisztens programot. (a google asszisztens nem tud magyarul és amúgy sem elérhető a Samsung telefonomon; amennyire tudom a siri sem tud magyarul) a kérdésem az, hogy szerintetek miért nincsen, amikor a billentyűzet is tud magyar beszéd után gépelni, vagy a google kereső mikrofonja is tud magyarul? az asszisztens programtól annyit várnék el, hogy szóbeli utasításra aktiválja magát, mint a siri, és az utasításomra képes legyen emlékeztetőt beállítani, és persze figyelmeztetni az adott időpontban. előfizetője is szívesen lennék egy ilyen programnak. megkértem:
bing gpt4 ezt dobta, google drive link, de nem értek hozzá, nekem sajnos ez csak szöveg, fogalmam sincs mit kell kezdeni vele.
miért nincsen szerintetek, illetve bonyolult létrehozni? valaki nem készítene egyet?, tényleg előfizető lennék...
-
sztanozs
veterán
A 3.12 pont ugyanannyira van fejlesztés alatt mint a 3.11. Csomagok tekintetében pedig ami 3.11-gyel megy 3.12-vel is fog.
Szerintem a lehető legfrissebbel kéne foglalkozni.
Tenyleg, 3.12 is vegleges mar, nem tartok lepest a korral. Mindenesetre eleg friss azert… jaa most latom ugyanaz az oldal - write-only mode ON


-
mobal
nagyúr
python.org-rol telepitsd, a Store-os asszem ki van herelve.
3.10/3.11-et nyugodtan hasznalhatod, nem sok olyan csomag van, aminek regebbi verzio kellene.
3.12 meg erosen fejlesztes alatt van es a csomagok (foleg a nagyobbak) csak lassan lesznek tamogatottak az uj verziokon.fejlesztesre en a helyedben pycharm-ot hasznalnek, nem VS-t, de lehet, hogy ez csak preferencia kerdese...
A 3.12 pont ugyanannyira van fejlesztés alatt mint a 3.11. Csomagok tekintetében pedig ami 3.11-gyel megy 3.12-vel is fog.
Szerintem a lehető legfrissebbel kéne foglalkozni.
-
cigam
titán
-
sh4d0w
félisten
-
cigam
titán
-
sh4d0w
félisten
-
cigam
titán
python.org-rol telepitsd, a Store-os asszem ki van herelve.
3.10/3.11-et nyugodtan hasznalhatod, nem sok olyan csomag van, aminek regebbi verzio kellene.
3.12 meg erosen fejlesztes alatt van es a csomagok (foleg a nagyobbak) csak lassan lesznek tamogatottak az uj verziokon.fejlesztesre en a helyedben pycharm-ot hasznalnek, nem VS-t, de lehet, hogy ez csak preferencia kerdese...
Köszi!
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
Újra szükségem lenne a Pythonra, de nem tudom hol kezdjem. Honnan telepítsem, és melyik verziót? A Windows áruházból, vagy a python.org-ról?
Melyik verzió kezeli rendesen az aiohttp-t? Próbáltam a legfrissebb verziót(3.12), de nem tudtam feltenni az aiohttp-t, viszont a 3.11-re gond nélkül települt.
Vagy tegyem vfel a visual studio python fejlesztőkörnyezetét, és az majd mindent(?) megold helyettem?python.org-rol telepitsd, a Store-os asszem ki van herelve.
3.10/3.11-et nyugodtan hasznalhatod, nem sok olyan csomag van, aminek regebbi verzio kellene.
3.12 meg erosen fejlesztes alatt van es a csomagok (foleg a nagyobbak) csak lassan lesznek tamogatottak az uj verziokon.fejlesztesre en a helyedben pycharm-ot hasznalnek, nem VS-t, de lehet, hogy ez csak preferencia kerdese...
-
cigam
titán
Újra szükségem lenne a Pythonra, de nem tudom hol kezdjem. Honnan telepítsem, és melyik verziót? A Windows áruházból, vagy a python.org-ról?
Melyik verzió kezeli rendesen az aiohttp-t? Próbáltam a legfrissebb verziót(3.12), de nem tudtam feltenni az aiohttp-t, viszont a 3.11-re gond nélkül települt.
Vagy tegyem vfel a visual studio python fejlesztőkörnyezetét, és az majd mindent(?) megold helyettem? -
Atomantiii
addikt
-
sztanozs
veterán
Nagyon köszönöm, így már lefutott hibamentesen.

erdemes nyitni egy hibajegyet a repojukra (vagy PR-t ezzel a javitassal) - marmint a py-xmltv repora, nem a py_epg-re
-
Atomantiii
addikt
elso otletem, hogy valami lxml problema lehet a config fajl beolvasasnal...
a forrasban probald meg atirni a 155-os sort errolreturn ET.parse(self._args.config)
errereturn ET.parse(open(self._args.config , 'r' , encoding="utf-8"))illetve a dependenciaban (C:\Python312\Lib\site-packages\xmltv\xmltv_helpers.py) cserelheto a 69 sor:
with xml_file_path.open("w") as data:
errewith xml_file_path.open("w", encoding="utf-8" ) as data:Nagyon köszönöm, így már lefutott hibamentesen.

-
sztanozs
veterán
elso otletem, hogy valami lxml problema lehet a config fajl beolvasasnal...
a forrasban probald meg atirni a 155-os sort errolreturn ET.parse(self._args.config)
errereturn ET.parse(open(self._args.config , 'r' , encoding="utf-8"))illetve a dependenciaban (C:\Python312\Lib\site-packages\xmltv\xmltv_helpers.py) cserelheto a 69 sor:
with xml_file_path.open("w") as data:
errewith xml_file_path.open("w", encoding="utf-8" ) as data:Igen, 3.10, ben a default encoding megvaltozott CP1250-rol utf-8-ra:
https://docs.python.org/3/whatsnew/3.10.html#optional-encodingwarning-and-encoding-locale-optionszoval vagy 3.10+ alatt futtatod, vagy fixalod a masodik pont szerint (xmltv_helpers.py)Nem pontos, de szerintem ez lesz a hiba egyebkent...
-
sztanozs
veterán
Elküldtem. Azt tegnap este a laptopon próbáltam, abból a logból van a python3.9. De most meóhelyen 3.12-es van ahogy írja az átküldött logban is.
De van otthoni pc-m is azon még nem próbáltam, azon is van valamilyen pyton.
elso otletem, hogy valami lxml problema lehet a config fajl beolvasasnal...
a forrasban probald meg atirni a 155-os sort errolreturn ET.parse(self._args.config)
errereturn ET.parse(open(self._args.config , 'r' , encoding="utf-8"))illetve a dependenciaban (C:\Python312\Lib\site-packages\xmltv\xmltv_helpers.py) cserelheto a 69 sor:
with xml_file_path.open("w") as data:
errewith xml_file_path.open("w", encoding="utf-8" ) as data: -
Atomantiii
addikt
Mondjuk nemethg altal felrakott log reszlet alapjan python 3.9-ben futtatja a programot, hogy van ez???
File "C:\Users\pp\AppData\Local\Programs\Python\Python39\lib\encodings\cp1250.py",
line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError:'charmap' codec can't encode character '\xfb'
in position 428: character maps to <undefined>at tudod dobni a lejes logot PM-ben?
Elküldtem. Azt tegnap este a laptopon próbáltam, abból a logból van a python3.9. De most meóhelyen 3.12-es van ahogy írja az átküldött logban is.
De van otthoni pc-m is azon még nem próbáltam, azon is van valamilyen pyton.
-
sztanozs
veterán
Nem tudom mi az az anaconda, valószínűleg nincs fent hacsak alap telepítésnél nem rakott fel olyat. Majd este otthon megnézem mert lehet korábbi python van fent, hogy azzal hátha menne.
Mondjuk nemethg altal felrakott log reszlet alapjan python 3.9-ben futtatja a programot, hogy van ez???
File "C:\Users\pp\AppData\Local\Programs\Python\Python39\lib\encodings\cp1250.py",
line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError:'charmap' codec can't encode character '\xfb'
in position 428: character maps to <undefined>at tudod dobni a lejes logot PM-ben?
-
Atomantiii
addikt
Nem tudom mi az az anaconda, valószínűleg nincs fent hacsak alap telepítésnél nem rakott fel olyat. Majd este otthon megnézem mert lehet korábbi python van fent, hogy azzal hátha menne.
-
sztanozs
veterán
Most éppen melóhelyen: Win 10 Enterprise 22H2, pythonra azt írja, hogy fent van a 3.11.2 és a 3.12.1 is. Most éppen cmd-be írom be a parancsot neki. Mondjuk otthoni gépemen még nem próbáltam, de majd este megpróbálom.
Ha a hiányolt \xc3-at hozzáadnám a cp1250-be, akkor valószínűleg nem problémázna rá, csak előbb-utóbb mindig talál olyat, ami nem tetszik neki.
probald meg 3.10-zel
ha van fent anakonda/miniconda, akkor csinalj neki egy uj venv-et:conda create -n py310 python=3.10
es aktivald:conda activate py310 -
Atomantiii
addikt
Most éppen melóhelyen: Win 10 Enterprise 22H2, pythonra azt írja, hogy fent van a 3.11.2 és a 3.12.1 is. Most éppen cmd-be írom be a parancsot neki. Mondjuk otthoni gépemen még nem próbáltam, de majd este megpróbálom.
Ha a hiányolt \xc3-at hozzáadnám a cp1250-be, akkor valószínűleg nem problémázna rá, csak előbb-utóbb mindig talál olyat, ami nem tetszik neki.
-
sztanozs
veterán
Most éppen mintha jó lenne, kipróbálom több csatornával is. Illetve mégsem ha mondjuk több napra állítom.
Tehát ennyi szerepel a py_epg.xml-ben a cool csatornára és 10 napra szeretném lehúzni. Ekkor ez szerepel a logban.
milyen os, milyen python verzio van fent nalad?
mi az alapertelmezett futtatokernyezet? -
Atomantiii
addikt
Igen telepítettem és helyileg próbálom futtatni ahogy írod ezzel a py_epg.xml-el, amiből veszi, hogy mely csatornákat akarom. Bár mondjuk ez a notepad++ szerint unicode kódolású és win 10-en próbálom futtatni parancssorból.
Bár most éppen nem írt hibát, de ha más csatornával próbálom akkor van amikor valószínűleg olyan karakterre akad, amivel nem tud mit kezdeni.
Most éppen mintha jó lenne, kipróbálom több csatornával is. Illetve mégsem ha mondjuk több napra állítom.
Tehát ennyi szerepel a py_epg.xml-ben a cool csatornára és 10 napra szeretném lehúzni. Ekkor ez szerepel a logban.
-
Atomantiii
addikt
Igen telepítettem és helyileg próbálom futtatni ahogy írod ezzel a py_epg.xml-el, amiből veszi, hogy mely csatornákat akarom. Bár mondjuk ez a notepad++ szerint unicode kódolású és win 10-en próbálom futtatni parancssorból.
Bár most éppen nem írt hibát, de ha más csatornával próbálom akkor van amikor valószínűleg olyan karakterre akad, amivel nem tud mit kezdeni.
-
sztanozs
veterán
-
sztanozs
veterán
ahh, ezek szerint a forras nem unicode.
probald meg csak bytestream-kent (vagy cp1250/1252-kent kezelni)btw nem a fajllal van a gond, hanem vsz a hoszting oldal (nhely.hu) kapott rossz besorolast, vagy hosztoltak rola phishing/rosszindulatu oldalakat.
-
sztanozs
veterán
-
sztanozs
veterán
Sziasztok!
Találtam egy python-ban írt kis programot, ami weboldalról grabbelne le tv műsort xml fájlba, de valamilyen encoding problémája van. Úgy gondolom, hogy az ékezetes betűkkel van problémája. Hogyan tudnám kijavítani a hiányzó karaktereket?Sajna nem tudom megnezni a hibat ceges proxy miatt (compromised website)
-
Atomantiii
addikt
Lehet korábbi pythonnal kellene próbálkozni? Vagy feldobni valamire egy ubuntut vagy valamilyen linuxot és azon jó eséllyel elindulna?
Pl ha a \xfb-t hozzáadom valamilyen karakterrel az 1250-es encodinghoz akkor már azon nem problémázik, hanem ha másikat talál, amit nem ismer akkor problémázik. Csak nem mindig írja ki, hogy melyiket nem ismeri, de úgy tűnik az ékezetes karakterek nem tetszenek neki.
-
Atomantiii
addikt
-
Atomantiii
addikt
Sziasztok!
Találtam egy python-ban írt kis programot, ami weboldalról grabbelne le tv műsort xml fájlba, de valamilyen encoding problémája van. Úgy gondolom, hogy az ékezetes betűkkel van problémája. Hogyan tudnám kijavítani a hiányzó karaktereket? -
axioma
veterán
köszönöm!

így szuperül működik
egyenlőre eddig ilyen, te is ilyesmire gondoltál?
import re
import glob
log_file_pattern = ".\\drmfiles\\programok\\firefox-log\\log.txt.moz_log.*"
log_files = glob.glob(log_file_pattern)
found_tokens = set()
patterns={
"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],
"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
"azukiststoken":[r"E/nsHttp...AzukiSTSToken:.(.*)"],
"natcho":[r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number="],
"Device_Id":[r"header=.Device-Id..value=.(.*)..merge=0]"],
"bff_token":[r"header=.bff_token..value=.(.*)..merge=0]"],
"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',
r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"],
"sess_id":[r"https://.*wv_getlicense.*session_uid=(.*?)&"],
"acc_ount":[r"E/nsHttp.uri=.*user_token=(.*)&session"],
"get_lic":[r"E/nsHttp uri=(.*wv_getlicense.*token.*)"]
}
results = {}
while found_tokens != set(patterns.keys()):
for file_path in log_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
for key, patternlist in patterns.items():
if key not in found_tokens:
for pattern in patternlist:
try:
token = re.findall(pattern, tdata)[0].strip()
results[key] = token
found_tokens.add(key)
except IndexError:
pass
except Exception as e:
print(f"Error processing {key}: {e}")
except (IndexError, FileNotFoundError):
print(f"File not found: {file_path}")
except Exception as e:
print(f"Error processing file {file_path}: {e}")
app_key = results["app_key"]
azukiapp = results["azukiapp"]
azukiststoken = results["azukiststoken"]
natcho = results["natcho"]
Device_Id = results["Device_Id"]
bff_token = results["bff_token"]
azudrm = results["azudrm"]
sess_id = results["sess_id"]
acc_ount = results["acc_ount"]
get_lic = results["get_lic"]Az nem volt egyertelmu h hasznalod is az ertekeket, de ja, jol korrigaltad. Mondjuk igy a found_tokens nem is kell, results.keys()==patterns.keys() vizsgalat eleg a while feltetelbe.
-
Hege1234
addikt
Bocs, tegnap nem jutottam el odaig...
Draft, nem is IDE-bol, de iranynak talan jo. A ..-nal toltsd ki a sajat valtozatod megfelelo soraivalpatterns={"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
... # ide atalakitod a tobbit is"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"]
}found_tokens = set()while found_tokens!=set(patterns.keys()):...for file_path in log_files:try:with open...for key,patternlist in patterns.items():if key not in found_tokens:for pattern in patternlist:try:re.findall(pattern, tdata)[0].strip()found_tokens.add(key) # if no exception occuredexcept: pass...
Szolj ha elakadsz, most ennyit sikerult. [Azt lehetne me'g figyelni hogy melyik file ami mar lezarodott igy felesleges ujranezni, de ha ez a sebesseg is jo akkor mind1.]köszönöm!

így szuperül működik
egyenlőre eddig ilyen, te is ilyesmire gondoltál?
import re
import glob
log_file_pattern = ".\\drmfiles\\programok\\firefox-log\\log.txt.moz_log.*"
log_files = glob.glob(log_file_pattern)
found_tokens = set()
patterns={
"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],
"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
"azukiststoken":[r"E/nsHttp...AzukiSTSToken:.(.*)"],
"natcho":[r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number="],
"Device_Id":[r"header=.Device-Id..value=.(.*)..merge=0]"],
"bff_token":[r"header=.bff_token..value=.(.*)..merge=0]"],
"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',
r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"],
"sess_id":[r"https://.*wv_getlicense.*session_uid=(.*?)&"],
"acc_ount":[r"E/nsHttp.uri=.*user_token=(.*)&session"],
"get_lic":[r"E/nsHttp uri=(.*wv_getlicense.*token.*)"]
}
results = {}
while found_tokens != set(patterns.keys()):
for file_path in log_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
for key, patternlist in patterns.items():
if key not in found_tokens:
for pattern in patternlist:
try:
token = re.findall(pattern, tdata)[0].strip()
results[key] = token
found_tokens.add(key)
except IndexError:
pass
except Exception as e:
print(f"Error processing {key}: {e}")
except (IndexError, FileNotFoundError):
print(f"File not found: {file_path}")
except Exception as e:
print(f"Error processing file {file_path}: {e}")
app_key = results["app_key"]
azukiapp = results["azukiapp"]
azukiststoken = results["azukiststoken"]
natcho = results["natcho"]
Device_Id = results["Device_Id"]
bff_token = results["bff_token"]
azudrm = results["azudrm"]
sess_id = results["sess_id"]
acc_ount = results["acc_ount"]
get_lic = results["get_lic"] -
axioma
veterán
Bocs, tegnap nem jutottam el odaig...
Draft, nem is IDE-bol, de iranynak talan jo. A ..-nal toltsd ki a sajat valtozatod megfelelo soraivalpatterns={"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
... # ide atalakitod a tobbit is"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"]
}found_tokens = set()while found_tokens!=set(patterns.keys()):...for file_path in log_files:try:with open...for key,patternlist in patterns.items():if key not in found_tokens:for pattern in patternlist:try:re.findall(pattern, tdata)[0].strip()found_tokens.add(key) # if no exception occuredexcept: pass...
Szolj ha elakadsz, most ennyit sikerult. [Azt lehetne me'g figyelni hogy melyik file ami mar lezarodott igy felesleges ujranezni, de ha ez a sebesseg is jo akkor mind1.] -
Hege1234
addikt
azt előre is köszi, ha időd engedi és sikerülne átalakítod valami értelmesre, mert én pl. a logikai hibát se vettem benne észre

-
axioma
veterán
axioma, atty_hor köszönöm az ötleteket!

így most már szépen ki tud lépni, de lehet csak azért mert így még csak 1 fájlban keres
tesztelem olyan adattal ami csak a 2. vagy 3. fájlban lehetne, ott már lehet majd el fog vérezni megint..(csak, hogy itt az oldalon jobban átlátható legyen ezért most csak az app_key-t tettem bele a többit kiszedtem..)
import re
import time
import glob
log_file_pattern = ".\\drmfiles\\programok\\firefox-log\\log.txt.moz_log.*"
tokens_to_find = 10
found_tokens = set()
while len(found_tokens) < tokens_to_find:
log_files = glob.glob(log_file_pattern)
found_all_tokens = True
for file_path in log_files:
cutted_file_path = re.findall(r'\\([^\\]+)$', file_path)[0].strip()
if file_path in found_tokens:
continue
try:
with open(file_path, 'r') as file:
tdata = file.read()
app_key = re.findall(r"header=.app_key..value=.(.*)..merge=0]", tdata)[0].strip()
print(f"Token found in {cutted_file_path}: app_key: {app_key}\n")
found_tokens.add(file_path)
except (IndexError, FileNotFoundError):
print(f"Token not found in {file_path}. Waiting for the next attempt.")
found_all_tokens = False
except Exception as e:
print(f"Error processing {file_path}: {e}")
found_all_tokens = False
if found_all_tokens:
break
time.sleep(2)Ah, most latom, nevezd mar at a set-et, vagy a token nevet tedd bele es arra hasznald.
Sot, ez igy logikai hibas. Ha egy file-ban mar talalt valamit, hiaba kerul bele uj token, azt ki fogja hagyni.
Kesobb atpufolhetem, most ennyire volt idom. -
Hege1234
addikt
axioma, atty_hor köszönöm az ötleteket!

így most már szépen ki tud lépni, de lehet csak azért mert így még csak 1 fájlban keres
tesztelem olyan adattal ami csak a 2. vagy 3. fájlban lehetne, ott már lehet majd el fog vérezni megint..(csak, hogy itt az oldalon jobban átlátható legyen ezért most csak az app_key-t tettem bele a többit kiszedtem..)
import re
import time
import glob
log_file_pattern = ".\\drmfiles\\programok\\firefox-log\\log.txt.moz_log.*"
tokens_to_find = 10
found_tokens = set()
while len(found_tokens) < tokens_to_find:
log_files = glob.glob(log_file_pattern)
found_all_tokens = True
for file_path in log_files:
cutted_file_path = re.findall(r'\\([^\\]+)$', file_path)[0].strip()
if file_path in found_tokens:
continue
try:
with open(file_path, 'r') as file:
tdata = file.read()
app_key = re.findall(r"header=.app_key..value=.(.*)..merge=0]", tdata)[0].strip()
print(f"Token found in {cutted_file_path}: app_key: {app_key}\n")
found_tokens.add(file_path)
except (IndexError, FileNotFoundError):
print(f"Token not found in {file_path}. Waiting for the next attempt.")
found_all_tokens = False
except Exception as e:
print(f"Error processing {file_path}: {e}")
found_all_tokens = False
if found_all_tokens:
break
time.sleep(2) -
atty_hor
tag
Sziasztok!
hogyan tudnék kilépni ebből a loopból?
a firefox log fájljában kerestetek 10 token-t
a fájlok nem egyből kerülnek bele a mappába, hanem folyamatosan
és minden 100MB adat után csinál egy új fájlt
log.txt.moz_log.0
log.txt.moz_log.1
log.txt.moz_log.2így elképzelhető, hogy valamelyik token majd csak a 2. vagy 3. fájlban lesz megtalálható..
script:
import re
import time
import glob
log_file_pattern = ".\\firefox-log\\log.txt.moz_log.*"
tokens_to_find = 10
tokens_found = 0
processed_files = set()
while tokens_found < tokens_to_find:
log_files = glob.glob(log_file_pattern)
for file_path in log_files:
cutted_file_path = re.findall(r'\\([^\\]+)$', file_path)[0].strip()
if file_path not in processed_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
app_key = re.findall(r"header=.app_key..value=.(.*)..merge=0]", tdata)[0].strip()
azukiapp = re.findall(r"E/nsHttp...AzukiApp:.(.*)", tdata)[0].strip()
azukiststoken = re.findall(r"E/nsHttp...AzukiSTSToken:.(.*)", tdata)[0].strip()
natcho = re.findall(r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number=", tdata)[0].strip()
Device_Id = re.findall(r"header=.Device-Id..value=.(.*)..merge=0]", tdata)[0].strip()
bff_token = re.findall(r"header=.bff_token..value=.(.*)..merge=0]", tdata)[0].strip()
sess_id = re.findall(r"https://.*wv_getlicense.*session_uid=(.*?)&", tdata)[0].strip()
acc_ount = re.findall(r"E/nsHttp.uri=.*user_token=(.*)&session", tdata)[0].strip()
try:
azudrm = re.findall(r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"', tdata)[0].strip()
except:
azudrm = re.findall(r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)", tdata)[0].strip()
get_lic = re.findall(r"E/nsHttp uri=(.*wv_getlicense.*token.*)", tdata)[0].strip()
print(f"Token found in {cutted_file_path}: app_key: {app_key}\n")
print(f"Token found in {cutted_file_path}: azukiapp: {azukiapp}\n")
print(f"Token found in {cutted_file_path}: azukiststoken: {azukiststoken}\n")
print(f"Token found in {cutted_file_path}: natcho: {natcho}\n")
print(f"Token found in {cutted_file_path}: Device_Id: {Device_Id}\n")
print(f"Token found in {cutted_file_path}: bff_token: {bff_token}\n")
print(f"Token found in {cutted_file_path}: sess_id: {sess_id}\n")
print(f"Token found in {cutted_file_path}: acc_ount: {acc_ount}\n")
print(f"Token found in {cutted_file_path}: azudrm: {azudrm}\n")
print(f"Token found in {cutted_file_path}: get_lic: {get_lic}\n")
tokens_found += 1
processed_files.add(file_path)
except (IndexError, FileNotFoundError):
print(f"Token not found in {cutted_file_path}. Waiting for the next attempt.")
except Exception as e:
print(f"Error processing {cutted_file_path}: {e}")
time.sleep(2)
print(f"All tokens found! Press Enter to exit.")
stopsdf = input('\stop now!')még a loopban lévő print:
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token found in log.txt.moz_log.0: app_key: ex****k
Token found in log.txt.moz_log.0: azukiapp: 3**
Token found in log.txt.moz_log.0: azukiststoken: AuthTok****
Token found in log.txt.moz_log.0: natcho: T****0P
Token found in log.txt.moz_log.0: Device_Id: 95d6****a4
Token found in log.txt.moz_log.0: bff_token: AuthTok****
Token found in log.txt.moz_log.0: sess_id: e4ab****f91
Token found in log.txt.moz_log.0: acc_ount: 100****001
Token found in log.txt.moz_log.0: azudrm: bd****C0=
Token found in log.txt.moz_log.0: get_lic: htt****lsemajd miután a log.txt.moz_log.0 betelt és létrejön a log.txt.moz_log.1 a mappában
elkezdi azt is csekkolni több száz sort nem teszek be róla, de az így néz ki:Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.2. Waiting for the next attempt.
Token not found in log.txt.moz_log.3. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.azt nem értem, hogy a loop-ból miért nem tud kilépni amikor a mostani helyzetben már az 1. fájlban megtalál minden token-t amit kerestetek és a print jelzi is..

lehet kellene valahova egy break és az, hogy megadom hogy 10 tokent találjon meg az nem elég a kilépéshez?
vagy más ok miatt mehet mégis a következő fájlra?Talán mert a "for file_path in log_files" ciklusod mindenképpen lefut az összes fájlra, hiszen a 10db feltételt a külső while ciklusban ellenőrzi?
-
axioma
veterán
Sziasztok!
hogyan tudnék kilépni ebből a loopból?
a firefox log fájljában kerestetek 10 token-t
a fájlok nem egyből kerülnek bele a mappába, hanem folyamatosan
és minden 100MB adat után csinál egy új fájlt
log.txt.moz_log.0
log.txt.moz_log.1
log.txt.moz_log.2így elképzelhető, hogy valamelyik token majd csak a 2. vagy 3. fájlban lesz megtalálható..
script:
import re
import time
import glob
log_file_pattern = ".\\firefox-log\\log.txt.moz_log.*"
tokens_to_find = 10
tokens_found = 0
processed_files = set()
while tokens_found < tokens_to_find:
log_files = glob.glob(log_file_pattern)
for file_path in log_files:
cutted_file_path = re.findall(r'\\([^\\]+)$', file_path)[0].strip()
if file_path not in processed_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
app_key = re.findall(r"header=.app_key..value=.(.*)..merge=0]", tdata)[0].strip()
azukiapp = re.findall(r"E/nsHttp...AzukiApp:.(.*)", tdata)[0].strip()
azukiststoken = re.findall(r"E/nsHttp...AzukiSTSToken:.(.*)", tdata)[0].strip()
natcho = re.findall(r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number=", tdata)[0].strip()
Device_Id = re.findall(r"header=.Device-Id..value=.(.*)..merge=0]", tdata)[0].strip()
bff_token = re.findall(r"header=.bff_token..value=.(.*)..merge=0]", tdata)[0].strip()
sess_id = re.findall(r"https://.*wv_getlicense.*session_uid=(.*?)&", tdata)[0].strip()
acc_ount = re.findall(r"E/nsHttp.uri=.*user_token=(.*)&session", tdata)[0].strip()
try:
azudrm = re.findall(r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"', tdata)[0].strip()
except:
azudrm = re.findall(r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)", tdata)[0].strip()
get_lic = re.findall(r"E/nsHttp uri=(.*wv_getlicense.*token.*)", tdata)[0].strip()
print(f"Token found in {cutted_file_path}: app_key: {app_key}\n")
print(f"Token found in {cutted_file_path}: azukiapp: {azukiapp}\n")
print(f"Token found in {cutted_file_path}: azukiststoken: {azukiststoken}\n")
print(f"Token found in {cutted_file_path}: natcho: {natcho}\n")
print(f"Token found in {cutted_file_path}: Device_Id: {Device_Id}\n")
print(f"Token found in {cutted_file_path}: bff_token: {bff_token}\n")
print(f"Token found in {cutted_file_path}: sess_id: {sess_id}\n")
print(f"Token found in {cutted_file_path}: acc_ount: {acc_ount}\n")
print(f"Token found in {cutted_file_path}: azudrm: {azudrm}\n")
print(f"Token found in {cutted_file_path}: get_lic: {get_lic}\n")
tokens_found += 1
processed_files.add(file_path)
except (IndexError, FileNotFoundError):
print(f"Token not found in {cutted_file_path}. Waiting for the next attempt.")
except Exception as e:
print(f"Error processing {cutted_file_path}: {e}")
time.sleep(2)
print(f"All tokens found! Press Enter to exit.")
stopsdf = input('\stop now!')még a loopban lévő print:
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token found in log.txt.moz_log.0: app_key: ex****k
Token found in log.txt.moz_log.0: azukiapp: 3**
Token found in log.txt.moz_log.0: azukiststoken: AuthTok****
Token found in log.txt.moz_log.0: natcho: T****0P
Token found in log.txt.moz_log.0: Device_Id: 95d6****a4
Token found in log.txt.moz_log.0: bff_token: AuthTok****
Token found in log.txt.moz_log.0: sess_id: e4ab****f91
Token found in log.txt.moz_log.0: acc_ount: 100****001
Token found in log.txt.moz_log.0: azudrm: bd****C0=
Token found in log.txt.moz_log.0: get_lic: htt****lsemajd miután a log.txt.moz_log.0 betelt és létrejön a log.txt.moz_log.1 a mappában
elkezdi azt is csekkolni több száz sort nem teszek be róla, de az így néz ki:Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.2. Waiting for the next attempt.
Token not found in log.txt.moz_log.3. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.azt nem értem, hogy a loop-ból miért nem tud kilépni amikor a mostani helyzetben már az 1. fájlban megtalál minden token-t amit kerestetek és a print jelzi is..

lehet kellene valahova egy break és az, hogy megadom hogy 10 tokent találjon meg az nem elég a kilépéshez?
vagy más ok miatt mehet mégis a következő fájlra?Amennyire elsore atlatom, ha 1 file-ban talal mindent, akkor is csak egy +1 tortenik, utana ha a kov. fajlban nincs mind a 10, akkor 1x se novelsz.
Vagy csak egy flag kene hogy megtalaltad mind, de akkor meg ha nem egyben van akkor azert nem lepsz ki, vagy egyesevel +1, de ovatosan az ertekadasokkal, mert a kovetkezonel felulcsapod az elozo file talalatait is, es/vagy esetleg ujra beszamolod. Szoval egyesevel kene a tokenekre ha me'g ures akkor re.findall, es ha megtalalta, akkor +1 (es legkozelebb ide ugye nem mesz bele), ha jol sejtem ez lehetett az eredeti szandek.
(Amugy 10-nel nem szaroznek megszamolgatassal, ami sikeres azt dobald set-be, es kilepesi feltetel hogy egyenlo-e az osszes keresendovel, mert igy nem kell az ujrakereseseknel se vizsgalodni.) -
Hege1234
addikt
Sziasztok!
hogyan tudnék kilépni ebből a loopból?
a firefox log fájljában kerestetek 10 token-t
a fájlok nem egyből kerülnek bele a mappába, hanem folyamatosan
és minden 100MB adat után csinál egy új fájlt
log.txt.moz_log.0
log.txt.moz_log.1
log.txt.moz_log.2így elképzelhető, hogy valamelyik token majd csak a 2. vagy 3. fájlban lesz megtalálható..
script:
import re
import time
import glob
log_file_pattern = ".\\firefox-log\\log.txt.moz_log.*"
tokens_to_find = 10
tokens_found = 0
processed_files = set()
while tokens_found < tokens_to_find:
log_files = glob.glob(log_file_pattern)
for file_path in log_files:
cutted_file_path = re.findall(r'\\([^\\]+)$', file_path)[0].strip()
if file_path not in processed_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
app_key = re.findall(r"header=.app_key..value=.(.*)..merge=0]", tdata)[0].strip()
azukiapp = re.findall(r"E/nsHttp...AzukiApp:.(.*)", tdata)[0].strip()
azukiststoken = re.findall(r"E/nsHttp...AzukiSTSToken:.(.*)", tdata)[0].strip()
natcho = re.findall(r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number=", tdata)[0].strip()
Device_Id = re.findall(r"header=.Device-Id..value=.(.*)..merge=0]", tdata)[0].strip()
bff_token = re.findall(r"header=.bff_token..value=.(.*)..merge=0]", tdata)[0].strip()
sess_id = re.findall(r"https://.*wv_getlicense.*session_uid=(.*?)&", tdata)[0].strip()
acc_ount = re.findall(r"E/nsHttp.uri=.*user_token=(.*)&session", tdata)[0].strip()
try:
azudrm = re.findall(r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"', tdata)[0].strip()
except:
azudrm = re.findall(r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)", tdata)[0].strip()
get_lic = re.findall(r"E/nsHttp uri=(.*wv_getlicense.*token.*)", tdata)[0].strip()
print(f"Token found in {cutted_file_path}: app_key: {app_key}\n")
print(f"Token found in {cutted_file_path}: azukiapp: {azukiapp}\n")
print(f"Token found in {cutted_file_path}: azukiststoken: {azukiststoken}\n")
print(f"Token found in {cutted_file_path}: natcho: {natcho}\n")
print(f"Token found in {cutted_file_path}: Device_Id: {Device_Id}\n")
print(f"Token found in {cutted_file_path}: bff_token: {bff_token}\n")
print(f"Token found in {cutted_file_path}: sess_id: {sess_id}\n")
print(f"Token found in {cutted_file_path}: acc_ount: {acc_ount}\n")
print(f"Token found in {cutted_file_path}: azudrm: {azudrm}\n")
print(f"Token found in {cutted_file_path}: get_lic: {get_lic}\n")
tokens_found += 1
processed_files.add(file_path)
except (IndexError, FileNotFoundError):
print(f"Token not found in {cutted_file_path}. Waiting for the next attempt.")
except Exception as e:
print(f"Error processing {cutted_file_path}: {e}")
time.sleep(2)
print(f"All tokens found! Press Enter to exit.")
stopsdf = input('\stop now!')még a loopban lévő print:
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token not found in log.txt.moz_log.0. Waiting for the next attempt.
Token found in log.txt.moz_log.0: app_key: ex****k
Token found in log.txt.moz_log.0: azukiapp: 3**
Token found in log.txt.moz_log.0: azukiststoken: AuthTok****
Token found in log.txt.moz_log.0: natcho: T****0P
Token found in log.txt.moz_log.0: Device_Id: 95d6****a4
Token found in log.txt.moz_log.0: bff_token: AuthTok****
Token found in log.txt.moz_log.0: sess_id: e4ab****f91
Token found in log.txt.moz_log.0: acc_ount: 100****001
Token found in log.txt.moz_log.0: azudrm: bd****C0=
Token found in log.txt.moz_log.0: get_lic: htt****lsemajd miután a log.txt.moz_log.0 betelt és létrejön a log.txt.moz_log.1 a mappában
elkezdi azt is csekkolni több száz sort nem teszek be róla, de az így néz ki:Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
.
.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.
Token not found in log.txt.moz_log.2. Waiting for the next attempt.
Token not found in log.txt.moz_log.3. Waiting for the next attempt.
Token not found in log.txt.moz_log.1. Waiting for the next attempt.azt nem értem, hogy a loop-ból miért nem tud kilépni amikor a mostani helyzetben már az 1. fájlban megtalál minden token-t amit kerestetek és a print jelzi is..

lehet kellene valahova egy break és az, hogy megadom hogy 10 tokent találjon meg az nem elég a kilépéshez?
vagy más ok miatt mehet mégis a következő fájlra? -
golfvariant
aktív tag
Gmailes MFA azonosításra van bármi lehetőség?
-
golfvariant
aktív tag
-
sonar
addikt
Kipróbáltam, de valamiért nem működött, pedig scrollozás közben megálltam, vissza is görgettem stb, aztán újra lefele. Mégsem jött össze, mindegy végülis sikerült megoldanom más módszerrel.
igaz nem használok fakeuseragent-et, vagy letöltött chromedriver.exe-t
Nincsenek világmegváltó terveim vele, csak sosem pythonoztam még, és célszerűnek láttam valami kézzelfogható projekttel indítani, mintsem sum = 1+2 szinttel indítani
És mi volt a megoldás?
-
golfvariant
aktív tag
Kipróbáltam, de valamiért nem működött, pedig scrollozás közben megálltam, vissza is görgettem stb, aztán újra lefele. Mégsem jött össze, mindegy végülis sikerült megoldanom más módszerrel.
igaz nem használok fakeuseragent-et, vagy letöltött chromedriver.exe-t
Nincsenek világmegváltó terveim vele, csak sosem pythonoztam még, és célszerűnek láttam valami kézzelfogható projekttel indítani, mintsem sum = 1+2 szinttel indítani
-
velizare
nagyúr
Köszi, este kipróbálom.
Remélem a webshopok ilyen jellegű monitorozása nem ütközik törvénybe
saját részre nem, volt cikk pl. mobile.de-s adatbányászatról, és kb. ez volt anno a konklúzió.
-
sonar
addikt
Köszi, este kipróbálom.
Remélem a webshopok ilyen jellegű monitorozása nem ütközik törvénybe
Jogi részeben nem tudok teljesen állást foglalni, de ezt én amolyan szürkezónának ítélem meg.
-
golfvariant
aktív tag
-
sonar
addikt
Írtam egy scriptet, amivel a zöldmanós webáráruház bizonyos termékcsoportjának árát ellenőrizném. Jelezve ha valami nagyobb akció van, mert néha tök jól ki lehet fogni dolgokat
Az oldal javascriptes működése miatt Seleniummal próbáltam megoldani. A script jól működik, de ha pl 20 oldalas a termékpaletta, akkor random eljutok a 5-12. oldalig és onnan valamiért csak első oldalt tölti be, hiába van az url-ben a megfelelő oldalszám.
Próbáltam sleep-el várakoztatni, hogy legyen ideje dolgozni a javascriptes termékbetöltőnek, de sajnos nem ezen múlik. Volt már valaki hasonló cipőben?
Érdemes ilyenkor scrollozni vagy tab, pagedown keyeket küldözgetni, hogy betöltődjön minden.
Meg egy kis wait.
Nekem szokott működni. -
golfvariant
aktív tag
Írtam egy scriptet, amivel a zöldmanós webáráruház bizonyos termékcsoportjának árát ellenőrizném. Jelezve ha valami nagyobb akció van, mert néha tök jól ki lehet fogni dolgokat
Az oldal javascriptes működése miatt Seleniummal próbáltam megoldani. A script jól működik, de ha pl 20 oldalas a termékpaletta, akkor random eljutok a 5-12. oldalig és onnan valamiért csak első oldalt tölti be, hiába van az url-ben a megfelelő oldalszám.
Próbáltam sleep-el várakoztatni, hogy legyen ideje dolgozni a javascriptes termékbetöltőnek, de sajnos nem ezen múlik. Volt már valaki hasonló cipőben?
-
sztanozs
veterán
web scrapinggel foglalkozik valaki?
lenne pár kérdésemIgen, tedd fel a kerdest
-
golfvariant
aktív tag
web scrapinggel foglalkozik valaki?
lenne pár kérdésem -
sztanozs
veterán
Aki jartas a python tesztelesben - ez hogy mukodik?
https://github.com/Colin-b/httpx_auth#available-pytest-fixturesfrom httpx_auth.testing import token_cache_mock, token_mock
def test_something(token_cache_mock):
# perform code using authentication
pass -
UDPSendToF
tag
Sziasztok!
Nagyjából egy héttel ezelőtt 0 Python tudással elkezdtem összedobni egy scriptet, amivel részben kiváltható a Corsair iCUE app, képek / GIF-ek megjelenítésére az AIO LCD-jén. Eddig úgy ment, hogy ChatGPT írta a kódrészletet miután megadtam, mit szeretnék, aztán valamennyi szenvedés után működött is normálisan. Főleg a mentéssel és visszaállítással volt bőven sz*pás, mire meglett a helyes sorrend.
Viszont a LED-ek irányításával gondban vagyok. Így a jelenlegi linkelt állapotában működne minden rendesen, viszont az egész script elkezd fagyni és beakadni. Először magával az LCD képernyővel is ugyanez volt, aztán az valahogy megoldódott. Próbáltam thread cuccokat is, de nem igazán értem, mi lenne erre a jó megoldás. Maga a LED hardver különálló kapcsolaton van, tehát az LCD kommunikáció nem zavar bele.
Valakinek esetleg van ötlete, hogyan lehetne ezt szépen megvalósítani?
A random összehányt sorrendet, error handling hiányát és otthagyott debug üzeneteket, stb ne nézzétek légyszi, azt majd a végén, mikor minden működik.
-
repvez
addikt
[link]
akkor igy linkelem.
Ahogy most muködik.
Alul megadom a nevét és az értékét a nodenak majd létrehozza
A piros négyzet jelentené a portot a kapcsolodáshoz, ebbol kellene egy ki és egy bemeneti a node oldalára.jelenleg csak akkor mozgathatoak a node-k ha már össze vannak kötve egymással és csak egy összeköttetés lehet mostAmit szeretnék, hogy egy olyan progi legyen mint ahogy a legtöbb mostanában használt programnél NODE-t használni.
Olyasmi mint Blenderben.
amit szeretnék elérni, hogy
-jobb gombbal késziteni egy uj node-t (egy másik változatban ez már ugy van)
-MEgadni neki a nevét ami fix lenne külön fejléccel és szinnel.
-bármikor lehessen értéket addni neki ha a nodeba kattintok
-legyen be és kimeneti portja
-ezeken a portokon keresztül lehessen összekötni a node-t akár több bemenet és kimenet is lehessen egy node-hoz.
-szabadon lehessen az egérrel mozgatni öket és nagyitani bármekkora térbe
-lehessen elmenteni és folytatni késöbb
Ami a lényeg
Ezeket a nodokat meg lehessen határozni, hogy bámilyen matematikai muveleteket végezzen el a két node érték közöttpl: egyik node 10 a másik 20 és össze akarom addni öket akkor össze kell kötni a 10 es kimenetét a 20 bemenetével és megadni, hogy összeadás legyen és igy a kimeneten keresztül már 30 menne a következő node-hoz
esetleg ha már van ilyen ami személyreszabhato node bázisu visuális program az is jo
-
sztanozs
veterán
-
axioma
veterán
üdv érdeklődnék, hogy nem lenne e probléma ha egy teljes 100 sor körüli codeot linkelnék be és segítené valaki kibogozni, hogy mi hogy lenne működőképes?
De lehetőleg csak ha tényleg a segítés a cél és nem annak firtatása ,hogy miért ezt és miért úgy ,ha nem is értek hozzá (csak a korábbi topicocbol kiindulva)csak technikai comment: inkabb github, pastebin vagy mas kulso szolgaltatonal lerakni es ide a linkjet csak, 100 sort mar konnyen macerassa valhat olvasgatni a forumbejegyzes hasaban
-
repvez
addikt
üdv érdeklődnék, hogy nem lenne e probléma ha egy teljes 100 sor körüli codeot linkelnék be és segítené valaki kibogozni, hogy mi hogy lenne működőképes?
De lehetőleg csak ha tényleg a segítés a cél és nem annak firtatása ,hogy miért ezt és miért úgy ,ha nem is értek hozzá (csak a korábbi topicocbol kiindulva) -
jerry311
nagyúr
-
sztanozs
veterán
Ha ezt lefuttatom, akkor offolja a LED-eket.
pi@raspberrypi3b:~ $ cat treeoff.py
from tree import RGBXmasTreetree = RGBXmasTree()tree.close()pi@raspberrypi3b:~ $
Gondoltam még, hátha esetleg bezavar a fényesség állítás (
tree = RGBXmasTree(brightness=0.04)), de ha kiveszem belőle a brightness-t akkor sem kapcsol le tree.close()-ra a színváltós script.Hmmmmmmm...
trree.off() lekapcsolja a LED-eket CTRL+C után.
tree.close() nem.
Hmmmmmm, érdekes.from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.off()print('Interrupted')sys.exit(0)
Köszönöm a segítséget.
Mit csinal a terkep a hatterben?
-
kovisoft
őstag
Az RGBXmasTree egy származtatott class, a close() csak annyit csinál, hogy meghívja a base class (super class) ugyanilyen nevű metódusát. A base class talán valami SPIDevice, ennek a close() metódusa választja ténylegesen le az eszközt. De ez nem kapcsolgatja a LED-eket.
-
jerry311
nagyúr
Passz.
Az OFF-ot még értem, a CLOSE már kínai.OFF
def off(self):self.value = ((0, 0, 0),) * len(self)CLOSE
def close(self):super(RGBXmasTree, self).close() -
kovisoft
őstag
Ha ezt lefuttatom, akkor offolja a LED-eket.
pi@raspberrypi3b:~ $ cat treeoff.py
from tree import RGBXmasTreetree = RGBXmasTree()tree.close()pi@raspberrypi3b:~ $
Gondoltam még, hátha esetleg bezavar a fényesség állítás (
tree = RGBXmasTree(brightness=0.04)), de ha kiveszem belőle a brightness-t akkor sem kapcsol le tree.close()-ra a színváltós script.Hmmmmmmm...
trree.off() lekapcsolja a LED-eket CTRL+C után.
tree.close() nem.
Hmmmmmm, érdekes.from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.off()print('Interrupted')sys.exit(0)
Köszönöm a segítséget.
A treeoff.py pedig azért működik, mert a tree objektum létrehozásakor a konstruktor hív egy off()-ot, az kapcsolja le a LED-eket. Valószínűleg akkor is működne a treeoff.py, ha kivennéd belőle a close()-t.
-
kovisoft
őstag
Ha ezt lefuttatom, akkor offolja a LED-eket.
pi@raspberrypi3b:~ $ cat treeoff.py
from tree import RGBXmasTreetree = RGBXmasTree()tree.close()pi@raspberrypi3b:~ $
Gondoltam még, hátha esetleg bezavar a fényesség állítás (
tree = RGBXmasTree(brightness=0.04)), de ha kiveszem belőle a brightness-t akkor sem kapcsol le tree.close()-ra a színváltós script.Hmmmmmmm...
trree.off() lekapcsolja a LED-eket CTRL+C után.
tree.close() nem.
Hmmmmmm, érdekes.from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.off()print('Interrupted')sys.exit(0)
Köszönöm a segítséget.
Szerintem hagyd meg a tree.close()-t is a tree.off() után. Valószínűleg így szabályos a kilépés, mert tippre az off() kikapcsolja, a close() meg leválasztja a perifériát.
-
jerry311
nagyúr
Ha ezt lefuttatom, akkor offolja a LED-eket.
pi@raspberrypi3b:~ $ cat treeoff.py
from tree import RGBXmasTreetree = RGBXmasTree()tree.close()pi@raspberrypi3b:~ $
Gondoltam még, hátha esetleg bezavar a fényesség állítás (
tree = RGBXmasTree(brightness=0.04)), de ha kiveszem belőle a brightness-t akkor sem kapcsol le tree.close()-ra a színváltós script.Hmmmmmmm...
trree.off() lekapcsolja a LED-eket CTRL+C után.
tree.close() nem.
Hmmmmmm, érdekes.from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.off()print('Interrupted')sys.exit(0)
Köszönöm a segítséget.
-
kovisoft
őstag
Nem az van, hogy a konstruktor kikapcsolja a LED-eket? És amikor egy külön scriptben van csak a close(), akkor lefut a konstruktor, kikapcsolja a LED-eket, nem a close() kapcsolja ki? Mert akkor a végén kell egy tree.off(), az kapcsolná ki, nem a close().
Persze csak találgatok.
-
kovisoft
őstag
És ha kihagyod a sys.exit() hívást? Vagy ha beteszel egy valamekkora sleep-et elé?
Szerk: esetleg egy tree.off() hívás a close() elé?
-
jerry311
nagyúr
-
kovisoft
őstag
hi,
nem vagyok egy python mester...
Kérdés: a tree.close() miért nem fut le ebben a kódban? Ha egy külön scriptben csak a tree.close() van akkor szépen lekapcsolja az összes LED-et, ahogy kellene.
from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.close()print('Interrupted')sys.exit(0)sleep = 1
helyett
time.sleep(1)
kellene.Ctrl+C-vel próbálsz kilépni a scriptből?
-
jerry311
nagyúr
hi,
nem vagyok egy python mester...
Kérdés: a tree.close() miért nem fut le ebben a kódban? Ha egy külön scriptben csak a tree.close() van akkor szépen lekapcsolja az összes LED-et, ahogy kellene.
from tree import RGBXmasTreefrom colorzero import Color, Hueimport randomimport sysdef random_color():r = random.random()g = random.random()b = random.random()return (r, g, b)tree = RGBXmasTree(brightness=0.04)if __name__ == '__main__':try:while True:pixel = random.choice(tree)pixel.color = random_color()sleep = 1except KeyboardInterrupt:tree.close()print('Interrupted')sys.exit(0) -
Hege1234
addikt
Egy chatgpt-s refactort rádobtam.

from glob import glob
tv_or_radio = 'Rádió' if elem['tv_or_radio'] else 'Videó'
file_extension = 'mp3' if elem['tv_or_radio'] else 'mkv'
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*{file_extension}"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continueigen, ha van egy jó alapja onnan már könnyen boldogul

(egyébként ezt rosszul értelmezte a gpt, mert amit komment-be tettem az csak nekem infó, hogy tudjam, hogy mit csinál a
tv_or_radio mert az csak ezt a kettő valamelyikét adhatja vissza
True False)amúgy kb. 4 órán keresztül szórakoztam a különböző gpt-kkel, de egyik se tudta azt megoldani, hogy a continue-val tudjon a következő iter-re ugrani, ha a fájl már létezik
olyat tudott összehozni, hogy a fájlokat megtalálta erre elkezdte letölteni újra
(a glob-ot egyébként egyik gpt se hozta fel csak az os.walk-ot bár szerintem azzal is megoldható lett volna, de addigra már meguntam..)jahh + el se akarta hinni, hogy én használhatom a continue-t azon a részen
-
JoinR
őstag
a glob valóban megoldotta
köszi, szuperül működik!
if elem['tv_or_radio'] == True:
#tv_or_radio = 'Rádió'
from glob import glob
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*mp3"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continue
elif elem['tv_or_radio'] == False:
#tv_or_radio = 'Videó'
from glob import glob
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*mkv"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continueEgy chatgpt-s refactort rádobtam.

from glob import glob
tv_or_radio = 'Rádió' if elem['tv_or_radio'] else 'Videó'
file_extension = 'mp3' if elem['tv_or_radio'] else 'mkv'
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*{file_extension}"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continue -
Hege1234
addikt
a glob valóban megoldotta
köszi, szuperül működik!
if elem['tv_or_radio'] == True:
#tv_or_radio = 'Rádió'
from glob import glob
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*mp3"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continue
elif elem['tv_or_radio'] == False:
#tv_or_radio = 'Videó'
from glob import glob
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*mkv"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continue -
sztanozs
veterán
sziasztok,
hogyan lehetne megoldani, hogy az itt lévő főmappában
Downloads\\befejezett\\NAVA
és a benne található almappákban is keressen a fájlok között
egy id-t?
ebben:find_this_id = f"id#{elem['clean_id']}"
pl.: id#3973922
ha megtalálta akkor csak menjen a következőre a continue-val, ha nem található akkor pedig csak foytatja a script-etez jelenleg csak azt tudja, hogy ha van találat akkor átugrik a következőre
ami jól is működik, de nem tud a főmappában és az almappákban keresni az id#...-vel szereplő fájl után:if elem['tv_or_radio'] == True:
#tv_or_radio = 'Rádió'
path_to_file = 'Downloads\\befejezett\\NAVA\\!kereső\\'+tv_or_radio+'\\'+replace_invalid_chars(ch_dir_name)+'\\'+replace_invalid_chars(title)+'.mp3'
path = Path(path_to_file)
if path.is_file():
print(f'{sarga} [INFO] ez a fájl már létezik itt: {path_to_file}')
continue
elif elem['tv_or_radio'] == False:
#tv_or_radio = 'Videó'
path_to_file = 'Downloads\\befejezett\\NAVA\\!kereső\\'+tv_or_radio+'\\'+replace_invalid_chars(ch_dir_name)+'\\'+replace_invalid_chars(title)+'.mkv'
path = Path(path_to_file)
if path.is_file():
print(f'{sarga} [INFO] ez a fájl már létezik itt: {path_to_file}')
continue
jelenleg, a példa id# itt is megtalálható:Downloads\befejezett\NAVA\Egy jenki Arthur király udvarában - A jenki, mint kóbor lovag (id#3973922).mkv
és itt is:Downloads\befejezett\NAVA\!kereső\Videók\M2\Egy jenki Arthur király udvarában - A jenki, mint kóbor lovag - id#3973922 - 2022#08#19 11#30#43.mkvez amiatt történt mert az előző verzióba más útvonalat használtam és így most újra végigmegy rajta amikor az már megvan...
szerintem a kerdesre a glob a valasz:
from glob import glob
...
lista = glob(r"\Downloads\befejezett\NAVA\**\" + f"*id#{elem['clean_id']}*", recursive=True)
if lista:
continue
Új hozzászólás Aktív témák
-
4200 - 4101
4451 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- P16s Gen2 16" FHD+ IPS i7-1360P RTX A500 32GB 1TB NVMe ujjlolv IR kam gar
- ASUS RTX 5070 TI 16GB GDDR7 PRIME OC - Gari 2028.04.10. -ig - Eladó!
- Eladó - DELL Inspiron, DELL Latitude, HP EliteDesk, DELL PowerEdge R630
- HP 14-dk0009nh FHD IPS Ryzen 3200U Radeon 530 16GB 256GB NVMe magyar bill gar
- Garmin Instinct 2 solar
- Újszerű Apple MacBook Air 13.6" (2024)- M3, 8GB/256GB (MRXV3MG/A) 16 Ciklus Éjfekete
- Lenovo ThinkPad P15 Gen 2 i7-11850H 32 GB RAM 1000GB SSD NVIDIA T1200 Garancia
- 27% - Samsung ViewFinity S7 S27D700EAU IPS Monitor! 3840x2160 / 60Hz / 5ms
- Xbox Series S 1 TB + kontroller 6 hó garancia, számlával!
- GYÖNYÖRŰ iPhone 16 Pro 128GB Desert Titanium -2 ÉV GARANCIA - Kártyafüggetlen, MS5153, 91% AKKSI
Állásajánlatok
Cég: aiMotive Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




Van pár tippem róla, de még sokat kell olvasnom, tanulnom.







