Keresés

Új hozzászólás Aktív témák

  • Hege1234

    addikt

    programozás topikból folytatás
    röviden .txt fájlból elérési utat a data rész-be illeszteni

    import requests
    import time
    import os
    import webbrowser

    file = open("c:\kodi\save.txt")
    lines = file.readlines()
    line = lines[1]

    os.startfile("c:\Program Files\Kodi2\kodi.exe")
    from pynput.keyboard import Key, Controller as K
    time.sleep(2)
    K().type(line+' ')

    file = open("c:\kodi\save.txt")
    lines2 = file.readlines()
    url = lines2[0]

    headers = {
    'Content-Type': 'application/json',
    }

    data = data = {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file": url}}}
    requests.post('http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base', headers = headers, json = data)

    .txt
    smb://192.168.1.10/e filmek/---==Szinkronos==---/@.mkv

    nem tudom, hogyan kell kiprintelni a hibákat így most csak simán beillesztettem ami a .py fájlban van
    >>> import requests
    >>> import time
    >>> import os
    >>> import webbrowser
    >>>
    >>> file = open("c:\kodi\save.txt")
    >>> lines = file.readlines()
    >>> line = lines[1]
    >>>
    >>> os.startfile("c:\Program Files\Kodi2\kodi.exe")
    >>> from pynput.keyboard import Key, Controller as K
    >>> time.sleep(2)
    >>> K().type(line+' ')
    >>>
    >>> file = open("c:\kodi\save.txt")
    >>> lines2 = file.readlines()
    >>> url = lines2[0]
    >>>
    >>> headers = {
    ... 'Content-Type': 'application/json',
    ... }
    >>>
    >>> data = data = {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file": url}}}
    >>> requests.post('http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base', headers = headers, json = data)

    kodi log
    kodi áttért a python3-ra a fenti kód mennyire lehet kompatibilis vele?

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz Hege1234 #3102 üzenetére

    upsz elfelejtettem entert nyomni :B

    amit bemásoltam python-ba ez a folytatása
    a kodi-ban nincs pynput ezért azt bemásoltam mappástól úgy már felismerte
    ugyan ezt próbáltam a requests-el is ez lehet nem volt jó ötlet..
    addig minden jól működik amíg az url string helyett elérési utat adok meg

    Traceback (most recent call last):
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 597, in urlopen
    httplib_response = self._make_request(conn, method, url,
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
    File "<string>", line 2, in raise_from
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 1345, in getresponse
    response.begin()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 276, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
    http.client.RemoteDisconnected: Remote end closed connection without response

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "c:\kodi\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 637, in urlopen
    retries = retries.increment(method, url, error=e, _pool=self,
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\retry.py", line 368, in increment
    raise six.reraise(type(error), error, _stacktrace)
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\packages\six.py", line 685, in reraise
    raise value.with_traceback(tb)
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 597, in urlopen
    httplib_response = self._make_request(conn, method, url,
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
    File "<string>", line 2, in raise_from
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 1345, in getresponse
    response.begin()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
    File "C:\Users\hadam\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 276, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
    urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "c:\kodi\requests\api.py", line 119, in post
    return request('post', url, data=data, json=json, **kwargs)
    File "c:\kodi\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
    File "c:\kodi\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
    File "c:\kodi\requests\sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
    File "c:\kodi\requests\adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
    requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

  • Hege1234

    addikt

    válasz sztanozs #3104 üzenetére

    smb://192.168.1.10/e filmek/---==Szinkronos==---/Nobody.2021.720p.BluRay.DD5.1.x264.HuN-No1/nobody.720p-no1.mkv
    003656
    Nobody

  • Hege1234

    addikt

    válasz JoinR #3105 üzenetére

    van egy save verzió is amivel mentem, hogy hol tart a film
    ezzel amit bemásoltam pedig vissza tudom állítani a poziciót, hogy hol tartott a film
    mert ha végigmegy és leáll akkor már látottként jelöli meg (ez akkor jó ha bealudnék egy filmen vagy több órás vod nézésénél csak rányomok a távirányítón arra a gombra ami lementi a poziciót, menüböl meg elérem azt amit bemásoltam + ezt is hozzáadtam egy gombhoz)

    print log2

    azt hiszem ez belőle a lényeg

    >>> print(url)
    smb://192.168.1.10/e filmek/---==Szinkronos==---/Nobody.2021.720p.BluRay.DD5.1.x264.HuN-No1/nobody.720p-no1.mkv

    >>> print(data)
    {'jsonrpc': '2.0', 'method': 'Player.Open', 'params': {'item': {'file': 'smb://192.168.1.10/e filmek/---==Szinkronos==---/Nobody.2021.720p.BluRay.DD5.1.x264.HuN-No1/nobody.720p-no1.mkv\n'}}}

  • Hege1234

    addikt

    válasz sztanozs #3108 üzenetére

    ez mind engedélyezve is van, ha beleírom ezt így működik

    {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"smb://192.168.1.10/e filmek/---==Szinkronos==---/Nobody.2021.720p.BluRay.DD5.1.x264.HuN-No1/nobody.720p-no1.mkv"}}}

    odaugrik a 00:36:56 hoz és nyom egy entert hogy valóban oda is ugorjon, ha nincs enter akkor csak eltűnik ami be lett pötyögve

    ez nem az új sort jelenti? \n

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz JoinR #3105 üzenetére

    ohh most értettem meg amit kérdeztél
    ezt a kodi kezeli azért kellett a pynput-ot is beleraknom a mappába

    RunScript("c:\kodi\load-pos.py")

    ha csak a gépről futtatnám akkor + ablakok is megjelennek ilyen volt az első változatban
    ezért tértem át pythonra mivel a kodiban fut le így nincsen felugró ablak

  • Hege1234

    addikt

    ez így tökéletes :)
    \n ez tett be mindennek...

    sokat tanultam ma, köszönöm szépen a kitartást és segítséget!
    JoinR, sztanozs :R

  • Hege1234

    addikt

    Hali

    mi okozhatja azt, hogy a result-al nem látom a data első részét? (time)
    ezzel szűrve print (resp['result']['item']['file'])
    szépen megkapom az elérési utat de a "time" részt nem tudom elérni

    print (resp['result']['time']['hours'])
    print (resp['result']['time']['minutes'])
    print (resp['result']['time']['seconds'])

    >>> import json
    >>> import base64
    >>> from urllib.request import Request, urlopen
    >>>
    >>> credentials = b'kodi:kodi'
    >>> encoded_credentials = base64.b64encode(credentials)
    >>> authorization = b'Basic ' + encoded_credentials
    >>>
    >>> headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
    >>> url = 'http://192.168.1.10:8080/jsonrpc?Base'
    >>> data = [{"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},{"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
    >>>
    >>> json_data = json.dumps(data)
    >>> post_data = json_data.encode('utf-8')
    >>> request = Request(url, post_data, headers)
    >>> result = urlopen(request)
    >>> print(result.read())
    b'[{"id":17,"jsonrpc":"2.0","result":{"time":{"hours":0,"milliseconds":416,"minutes":52,"seconds":59}}},{"id":18,"jsonrpc":"2.0","result":{"item":{"file":"smb://192.168.1.10/n filmek 720p/@.mkv","id":340,"label":"The Expendables 3","type":"movie"}}}]'
    >>>
    >>> print (resp['result'])
    {'item': {'file': 'smb://192.168.1.10/n filmek 720p/@.mkv', 'id': 340, 'label': 'The Expendables 3', 'type': 'movie'}}

  • Hege1234

    addikt

    válasz sztanozs #3115 üzenetére

    köszi, a requests modullal is megkapom a választ!

    Hogyan került bele a resp-be a result? az nem látszik a kódból...
    ha jól értem a kérdést akkor azt a szervertől kapom vissza?

    hogyan lehetne ezt még tovább szűrni?

    a print(result) ezt adja vissza:

    [{'id': 17, 'jsonrpc': '2.0', 'result': {'time': {'hours': 0, 'milliseconds': 416, 'minutes': 52, 'seconds': 59}}}, {'id': 18, 'jsonrpc': '2.0', 'result': {'item': {'file': 'smb://192.168.1.10/n filmek 720p/@.mkv', 'id': 340, 'label': 'The Expendables 3', 'type': 'movie'}}}]

    az átláthatóság kedvéért megformáztam kézzel

    [
    {
    "id": 17,
    "jsonrpc": "2.0",
    "result": {
    "time": {
    "hours": 0,
    "milliseconds": 416,
    "minutes": 52,
    "seconds": 59
    }
    }
    },
    {
    "id": 18,
    "jsonrpc": "2.0",
    "result": {
    "item": {
    "file": "smb://192.168.1.10/n filmek 720p/@.mkv",
    "id": 340,
    "label": "The Expendables 3",
    "type": "movie"
    }
    }
    }
    ]

    print (resp['result']['item']['file'])
    smb://192.168.1.10/n filmek 720p/@.mkv

    de ha pl a "hours" -t szeretném akkor már ezt kapom vissza:
    print (resp['result']['time']['hours'])
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'time'

    egyébként a célom az lenne hogy így szerepeljenek egy .txt fájlban
    smb://192.168.1.10/n filmek 720p/@.mkv
    0
    52
    59

    ahogy kigondoltam ez valahogy így nézne ki
    print (resp['result']['item']['file'])
    print (resp['result']['time']['hours'])
    print (resp['result']['time']['minutes'])
    print (resp['result']['time']['seconds'])

    majd a számokat a 2. sorba egybefűzni és ha valamelyik értéknél csak egy szám van mindig kerüljön elé egy 0
    smb://192.168.1.10/n filmek 720p/@.mkv
    005259

    ilyen lehetséges python-ban?

  • Hege1234

    addikt

    köszi pár órával ezelőtt kezdtem bele hogyan is lehetne megoldani még keverem minek mi a pontos neve és jelentősége

    >>> import json
    >>> import base64
    >>> import requests
    >>>
    >>> credentials = b'kodi:kodi'
    >>> encoded_credentials = base64.b64encode(credentials)
    >>> authorization = b'Basic ' + encoded_credentials
    >>> headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
    >>> url = 'http://192.168.1.10:8080/jsonrpc?Base'
    >>> data = [
    ... {"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},
    ... {"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
    >>> response = requests.post(url, headers=headers, data=json.dumps(data))
    >>> result = response.json()
    >>>
    >>>
    >>>
    >>> print(result[0])
    {'id': 17, 'jsonrpc': '2.0', 'result': {'time': {'hours': 0, 'milliseconds': 416, 'minutes': 52, 'seconds': 59}}}
    >>>
    >>>
    >>>
    >>> print(result[1])
    {'id': 18, 'jsonrpc': '2.0', 'result': {'item': {'file': 'smb://192.168.1.10/n filmek 720p/@.mkv', 'id': 340, 'label': 'The Expendables 3', 'type': 'movie'}}}
    >>>
    >>>

    ez alapján akkor kiderült, hogy a [0]-ban van a time és [1]-esben pedig az item

    amit példának írtál szerintem azt valahogy rosszul használom

    >>> import json
    >>> import base64
    >>> import requests
    >>>
    >>> credentials = b'kodi:kodi'
    >>> encoded_credentials = base64.b64encode(credentials)
    >>> authorization = b'Basic ' + encoded_credentials
    >>> headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
    >>> url = 'http://192.168.1.10:8080/jsonrpc?Base'
    >>> data = [
    ... {"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},
    ... {"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
    >>> response = requests.post(url, headers=headers, data=json.dumps(data))
    >>> result = response.json()
    >>> print(result)
    [{'id': 17, 'jsonrpc': '2.0', 'result': {'time': {'hours': 0, 'milliseconds': 416, 'minutes': 52, 'seconds': 59}}}, {'id': 18, 'jsonrpc': '2.0', 'result': {'item': {'file': 'smb://192.168.1.10/n filmek 720p/@.mkv', 'id': 340, 'label': 'The Expendables 3', 'type': 'movie'}}}]
    >>> for i in result:
    ... if i['result'].get('time'):
    ... mytime = i['result']['time']
    ... if i['result'].get('item'):
    ... myfile = i['result']['item']['file']
    ... print(mytime)
    File "<stdin>", line 6
    print(mytime)
    ^
    SyntaxError: invalid syntax
    >>> print(myfile)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'myfile' is not defined

  • Hege1234

    addikt

    azt egyébként még mindig nem értem, ha a result csak [0] és [1] -et fogad és mást nem írhatok bele
    pl : print(result[0])
    ezzel sehogy nem fogom a "minutes" értékét (52) megkapni
    mit kellene helyette használnom?

    sztanozs: notepad++ ból szoktam a terminálba behúzni az egész scriptet
    annyira nem gáz, a pycharm amúgy teccik azt lehet majd felrakom

  • Hege1234

    addikt

    válasz sztanozs #3122 üzenetére

    áhhháá :) köszi

    egybe tettem az egészet ami kell
    print(result[1]['result']['item']['file'],result[0]['result']['time']['hours'],result[0]['result']['time']['minutes'],result[0]['result']['time']['seconds'])

    ezzel most így néz ki
    smb://192.168.1.10/n filmek 720p/@.mkv 0 52 49

    print részbe a file után lehet esetleg szúrni valahogy egy új sort?
    ezzel próbálkoztam de nem sikerült '\n'

  • Hege1234

    addikt

    köszi ezzel ismét közelebb kerültem a célhoz

    print(result[1]['result']['item']['file']+'\n',result[0]['result']['time']['hours'],result[0]['result']['time']['minutes'],result[0]['result']['time']['seconds'])

    sikerült új sorba tenni de belekerül egy space is az elejére amivel lehet lesz baj a későbbiekben

    most már csak azt kellene elérni hogy a 2. sorba került
    számok ha a szám 0-9 akkor mindig kerüljön elé egy 0 és össze legyenek húzva
    majd ezt elmenteni egy txt fájlba

    0 52 49
    005249

    02 09 11
    020911

    01 25 07
    012507

  • Hege1234

    addikt

    válasz cousin333 #3126 üzenetére

    egyelőre annak is örülök, hogy idáig elrugdaltak a többiek :)
    amit te írsz az egy eléggé nagy falat lenne most nekem

  • Hege1234

    addikt

    válasz sztanozs #3131 üzenetére

    amit kapok terminálba az úgy tökéletes!
    amikor txt-be menteném ott már csak a szám szerepel és a link nem

    import json
    import base64
    import requests

    credentials = b'kodi:kodi'
    encoded_credentials = base64.b64encode(credentials)
    authorization = b'Basic ' + encoded_credentials
    headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
    url = 'http://192.168.1.10:8080/jsonrpc?Base'
    data = [
    {"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},
    {"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
    response = requests.post(url, headers=headers, data=json.dumps(data))
    result = response.json()
    h,m,s = map(int, [result[0]['result']['time'][val] for val in ['hours','minutes','seconds']])
    time = f'{h:02}{m:02}{s:02}'
    print(result[1]['result']['item']['file'],time, sep='\n')
    smb://192.168.1.10/n filmek 720p/@.mkv
    012456

    with open('c:\\kodi\\info.txt', 'w') as outfile:
    outfile.write(time)

    itt próbáltam a time-hoz még hozzáírni a "file"-t
    így de az úgy nem működik

    with open('c:\\kodi\\info.txt', 'w') as outfile:
    outfile.write(result[1]['result']['item']['file'],time))

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz cousin333 #3132 üzenetére

    köszi, neked is!
    Csak így szünet lesz a számok között
    01 24 56

    ok ok már rájöttem csak egybe kellett tenni :D

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz Hege1234 #3133 üzenetére

    így működik!
    de ez így amúgy szabályos mentésnek mondható?

    print(result[1]['result']['item']['file'],time, sep='\n', file=open("c:\\kodi\\info.txt", "w"))

  • Hege1234

    addikt

    print(result[1]['result']['item']['file'],time,result[1]['result']['item']['label'], '------------', sep='\n', file=open("c:\\kodi\\save.txt", "a+"))

    smb://192.168.1.10/@.mkv
    004741
    The Mitchells vs. The Machines
    ------------
    smb://192.168.1.10/@.mkv
    000541
    Childrick of Mort
    ------------

    az "a+" -helyett melyik az ami nem a végére ír hanem az elejére?
    a "w+" hasznos lenne csak az felül is írja az egész fájlt
    a seek(0) -t lehet valahogy használni a print részbe?

    sztanozs: igen, az tényleg jó lenne ha lenne olyan amiben egy témában benne van minden részlet de általában a videó végére az szokott lenni, hogy mindenről volt szó csak arról nem amihez nekem kellet volna.

  • Hege1234

    addikt

    válasz Hege1234 #3137 üzenetére

    with open('c:\\kodi\\save.txt', 'a+') as outfile:
    outfile.write(result[1]['result']['item']['file']+'\n'+time+'\n'+result[1]['result']['item']['label']+'\n'+'----------'+'\n')
    outfile.seek(0)

    futtatás után a seek(0) miatt nem úgy kellene működnie, hogy az új 4 sor a fájl elejére kerüljön és ne végére?

  • Hege1234

    addikt

    köszönöm a tanácsokat délután lesz vele időm foglalkozni
    amiket írtatok ezek szerint jobban át kell gondolnom hogyan is kellene megoldani

    ha egy példával kellene akkor talán úgy nézne ki mint egy todo list
    csak itt az átlag 1 soros todo list helyett 4 sort írna egyszerre mindig

    a fájl minden sorát megtartva csak az elejére mindig 4 sor kerülne
    az "r+" azért nem jó mivel azzal a már meglévő sorokhoz nem ír pluszban hozzá
    hanem csak mindig az elejére írja

  • Hege1234

    addikt

    outfile.seek(-1) kipróbálom majd köszi
    nem csak pár sort kellett volna beszúrnom ez igaz
    délután leírok mindent azt is ami "értelmezi" a txt fájlt

  • Hege1234

    addikt

    válasz sztanozs #3145 üzenetére

    #3145 sztanozs:
    köszönöm ami a linkben van az úgy tökéletes és a kodi se találta hibásnak! :)

    import json
    import base64
    import requests
    import xbmc

    credentials = b'kodi:kodi'
    encoded_credentials = base64.b64encode(credentials)
    authorization = b'Basic ' + encoded_credentials
    headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
    url = 'http://192.168.1.10:8080/jsonrpc?Base'
    data = [
    {"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},
    {"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
    response = requests.post(url, headers=headers, data=json.dumps(data))
    result = response.json()
    h,m,s = map(int, [result[0]['result']['time'][val] for val in ['hours','minutes','seconds']])
    time = f'{h:02}{m:02}{s:02}'
    with open('c:\\kodi\\save.txt', 'r') as original: data = original.read()
    with open('c:\\kodi\\save.txt', 'w') as modified: modified.write(result[1]['result']['item']['file']+'\n'+time+'\n'+result[1]['result']['item']['label']+'\n'+'----------'+'\n' + data)
    xbmc.executebuiltin('Action(CreateBookmark)')

    megfogadom a tanácsod még magyarul is találtam oktatóanyagokat

    #3148 v.hulladék
    egyébként miért ördögtől való az, hogy a fájl elejére szeretnék írni?

  • Hege1234

    addikt

    Üdv!

    az egyik oldalon
    tegnap óta csak egy text jelenik meg
    (No listen URL! SID not found!)
    mivel hiába keres, így a print hibára fut
    megoldható lenne valahogy, hogy csak akkor printelje ki ha pl tartalmazza a http szót?
    ha nincs akkor csak egy új sort írjon hozzá '\n' ?

    csak simán a print(CINELIFEHD)
    kiadja az url-t ezért persze csak gondolom, hogy elég lenne a http-re szűrni
    https://magselect-stirr.amagi.tv/playlist1080p.m3u8

    import requests
    from bs4 import BeautifulSoup

    html_url22 = "http://streamstat.net/videoplayer.cgi?sid=14358315&ext=.m3u8"
    html_response = requests.get(html_url22)
    soup = BeautifulSoup(html_response.text, 'html.parser')
    for vid in soup.find_all('source'):
    CINELIFEHD = vid['src']

    html_url23 = "http://streamstat.net/videoplayer.cgi?sid=148177550&ext=.m3u8"
    html_response = requests.get(html_url23)
    soup = BeautifulSoup(html_response.text, 'html.parser')
    for vid in soup.find_all('source'):
    FIXTV = vid['src']

    print(CINELIFEHD+FIXTV)

  • Hege1234

    addikt

    válasz sztanozs #3158 üzenetére

    köszi, addig mindent szépen szűr amíg a FIXTV nincs hozzáadva
    ha azt is hozzáírom akkor már elhasal

    import requests
    from bs4 import BeautifulSoup

    html_url22 = "http://streamstat.net/videoplayer.cgi?sid=14358315&ext=.m3u8"
    html_response = requests.get(html_url22)
    soup = BeautifulSoup(html_response.text, 'html.parser')
    for vid in soup.find_all('source'):
    CINELIFEHD = vid['src']

    html_url23 = "http://streamstat.net/videoplayer.cgi?sid=148177550&ext=.m3u8"
    html_response = requests.get(html_url23)
    soup = BeautifulSoup(html_response.text, 'html.parser')
    for vid in soup.find_all('source'):
    FIXTV = vid['src']

    html_url40 = "https://raw.githubusercontent.com/Special2020/Iptv-hu.m3u/master/Uj%20T%20A.m3u"
    ExtremeSportsChannel = requests.get(html_url40)

    html_url14 = "https://onlinestream.live/fem3/videoplayer/6455-1"
    html_response = requests.get(html_url14)
    soup = BeautifulSoup(html_response.text, 'html.parser')
    for vid in soup.find_all('source'):
    fem3 = vid['src']

    if 'http' in vid['src']:
    print(
    "#EXTM3U"
    + '\n' +
    "#EXTINF:0,tvg-logo=https://cinelife.com/wp-content/uploads/2020/04/cinelife_logo.png, CINE LIFE HD" + '\n' +
    CINELIFEHD + '\n' +
    "#EXTINF:0,tvg-logo=http://1241.hu/userfiles/image/tvcsatornak/fem3.jpg, FEM3" + '\n' +
    fem3 + '\n'
    "#EXTINF:0,tvg-logo=https://cdn.pngsumo.com/tv-guide-extreme-sports-channel-the-home-of-action-sports-action-sports-png-320_240.png, Extreme Sports Channel" + '\n' +
    ExtremeSportsChannel.text.split("\n")[308]
    + '\n' + "#EXTINF:0,tvg-logo=http://1241.hu/userfiles/image/tvcsatornak/pic_atkoto_55_fix_tv.png, Fix" + '\n' +
    FIXTV
    ,file=open("test.m3u8", "w"))

    Traceback (most recent call last):
    File "C:\scrape\test.py", line 37, in <module>
    FIXTV
    NameError: name 'FIXTV' is not defined

    ha csak az egyszerűbb verziót printelem ki akkor is ezt írja
    if 'http' in vid['src']:
    print(CINELIFEHD+FIXTV)

    NameError: name 'FIXTV' is not defined

  • Hege1234

    addikt

    import requests
    from bs4 import BeautifulSoup

    def parse_src(text_response, src=''):
    try:
    soup = BeautifulSoup(text_response, 'html.parser')
    for vid in soup.find_all('source'):
    src = vid['src']
    except:
    pass
    return src

    def parse_text(text_response, line, src=''):
    try:
    return text_response.split("\n")[line]
    except:
    return src

    def parse_xspf(src=''):
    try:
    soup = BeautifulSoup(html_response.text, 'html.parser')
    src = soup.find('location').text
    except:
    pass
    return src

    m3_data = [
    {
    'name': 'Film Now',
    'url': 'https://onlinestream.live/play.xspf?id=7061&ch=1&ext=.xspf',
    'logo': '"https://musor.tv/images/filmnow.png"',
    'channel-num': '"4"',
    'group': '"Filmek"',
    'parser': parse_xspf,
    'parser_args': {},
    },
    {
    'name': 'The Heartland Network',
    'url': 'http://streamstat.net/videoplayer.cgi?sid=71076387&ext=.m3u8',
    'logo': '"https://upload.wikimedia.org/wikipedia/en/b/ba/Heartland_TV_logo.png"',
    'channel-num':'"38"',
    'group':'"Angol;Zene"',
    'parser': parse_src,
    'parser_args': {},
    },
    {
    'name': 'CBS Reality',
    'url': 'https://raw.githubusercontent.com/Special2020/Iptv-hu.m3u/master/Uj%20T%20A.m3u',
    'logo': '"https://static.wikia.nocookie.net/logopedia/images/c/ce/CBS_Reality_%28Stacked%29.svg/revision/latest/scale-to-width-down/185?cb=20191203154407"',
    'channel-num': '"79"',
    'group': '""',
    'parser': parse_text,
    'parser_args': {'line': 310},
    },
    ]

    exif_info = '#EXTM3U\n'
    for channel in m3_data:
    html_response = requests.get(channel['url'])
    parser = channel['parser']
    extra = channel['parser_args']
    src = parser(html_response.text, **extra)
    if src:
    channel['src'] = src
    exif_info += f'#EXTINF:0, tvg-chno={channel["channel-num"]}, group-title={channel["group"]}, tvg-logo={channel["logo"]}, {channel["name"]}\n{src}\n'

    print(exif_info, file=open("test.m3u8", "w"))
    print(exif_info)

    a kapott linkekből van pár elég fura link
    http://193.33.39.106:8790/ (Film Now) nem működik VLC alól
    de nem errort dob hanem csak próbálná elindítani a végtelenségig
    Kodi meg kb lefagy tőle..

    valamelyik link addig printelne amíg nincs leállítva ezért tettem be egy exit() -et
    pl. az ilyen linkek miatt
    http://193.33.39.108:7000/play/a006

    urllib3.disable_warnings() ez pedig a https linkek miatt kellett

    import requests
    import urllib3
    urllib3.disable_warnings()

    def check_stream_link(url):
    try:
    s = requests.Session()
    with s.get(url, stream=True, verify=False, timeout=1) as resp:
    for line in resp.iter_lines():
    if line:
    print(line)
    exit()
    except:
    pass

    url = 'http://193.33.39.106:8790/'
    check_stream_link(url)

    teszteltem mind a 82 linket csak akkor printelt üresen, ha ez a végtelen próbálkozás történik (kb 4 ilyen link volt)
    hozzá lehetne esetleg valahogy tenni ezt úgy, hogy csak azokat adja hozzá az exif_info-hoz ha a print nem üres?

    [ Szerkesztve ]

  • Hege1234

    addikt

    hogyan lehetne azt megoldani, ha egy txt-ben
    több karakter van egy sorban mint 150 akkor ne foglalkozzon vele hanem adja be a következőt ami kisebb mint 150 karakter?

    file = open("characters.txt")
    lines = file.readlines()
    characters = lines[0]

    általában a txt fájlban a sorok így szoktak előfordulni

    1.
    AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEMAdQBYAHoAcgArAGsARwBnADYATgBvAEoAeQA1AGIAVgBmAC8ANAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUgBCAGwAVQB6AGgAcABMAEkAdABvAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A
    AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQzpcr8KS/DhqNoJy5bVf/4xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2lZMnhwY0Y4eE1qZzVPVE01TVNKOTIHZGVmYXVsdA==
    ADwASwBJAEQAPgA4AEMAdQBYAHoAcgArAGsARwBnADYATgBvAEoAeQA1AGIAVgBmAC8ANAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAc

    2.
    AcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEMAdQBYAHoAcgArAGsARwBnADYATgBvAEoAeQA1AGIAVgBmAC8ANAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUgBCAGwAVQB6AGgAcABMAEkAdABvAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A
    AAAC4nBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAsLCAgAAAQABALgCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA
    ADwASwBJAEQAPgA4AEMAdQBYAHoAcgArAGsARwBnADYATgBvAEoAeQA1AGIAVgBmAC8ANAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAAAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADw
    AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA
    AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQzpcr8KS/DhqNoJy5bVf/4xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2lZMnhwY0Y4eE1qZzVPVE01TVNKOTIHZGVmYXVsdA==

    3. (ez így persze a legjobb mert itt az első sor kisebb mint 150 karater)
    AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQzpcr8KS/DhqNoJy5bVf/4xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2lZMnhwY0Y4eE1qZzVPVE01TVNKOTIHZGVmYXVsdA==
    AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEMAdQBYAHoAcgArAGsARwBnADYATgBvAEoAeQA1AGIAVgBmAC8ANAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUgBCAGwAVQB6AGgAcABMAEkAdABvAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A
    AAAC4nBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAsLCAgAAAQABALgCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA

    [ Szerkesztve ]

  • Hege1234

    addikt

    Üdv,

    egy olyan kérdésem lenne, hogy hogyan lehetne egy .txt (dat.txt, csak egy sor van benne) tartalmát a headersben lévő dat helyére "illeszteni"

    headers = {
    'Connection': 'keep-alive',
    'sec-ch-ua': '"Chromium";v="94", " Not A;Brand";v="99", "Opera";v="80"',
    'data': dat,
    'sec-ch-ua-mobile': '?0',
    }

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz Hege1234 #3418 üzenetére

    file = open("dat.txt")
    lines = file.readlines()
    dat = lines[0]

    dat.txt
    i5fstZQAjiTCw6ZdzOjaSxrjw

    error:
    raise ValueError('Invalid header value %r' % (values[i],))
    ValueError: Invalid header value b'i5fstZQAjiTCw6ZdzOjaSxrjw\n

    az egészbe az kavar bele, hogy ott a végén az \n vagy az, hogy nem tudom a headers-be juttattni a dat-ot?

  • Hege1234

    addikt

    Sziasztok!

    text fájlból szeretném a fontosabb részt egy .txt fájlba kimenteni regex-el
    eddig ezt a jrepl.bat-al oldottam meg de szeretném ugyanezt megoldani pythonnal

    a logban lehet akár 17-20000 sor is (1-2 MB a fájl mérete)
    amiből csak 1 sor egy részét kellene valahogy elmenteni egy külső .txt fájlba

    a jrepl-t batch alól hívtam be

    call "jrepl.bat" "\bhttps?:.+\.mpd(?!\?)\b" "" /MATCH /F "log.txt_log" /O "link.txt"

    pythonhoz ezt a regex-et, hogyan tudnám felhasználni?
    \bhttps?:.+\.mpd(?!\?)\b

    a jrepl "javascript" alapú szóval nem vagyok teljesen biztos benne, hogy átalakítás
    nélkül lehet-e használni ezt a regex-et python-hoz is :F
    kelleni fog hozzá letölteni egy modult vagy az alap python is képes rá?
    Python 3.9.0

    regex101 példa

    köszi, előre is!

  • Hege1234

    addikt

    válasz Hege1234 #3443 üzenetére

    sikerült

    import re

    f = open("log.txt_log").read()
    link = re.findall("https?:.+\.mpd(?!\?)", f)
    link = link[0].strip()

    print(link)
    print(link, file=open("link.txt", "w"))

    ----------------------

    ebben viszont elakadtam

    link.txt-t beolvasva hogyan tudnék abból az egy sorból szövegrészeket felcserélni?

    3 különböző szöveget kellene felcserélni
    ezt jrepl-el csak úgy lehetett megoldani, hogy 1 szöveget kicserélt elmentette
    azt a fájlt behívva kicseréli a 2. at ezt megint elmenteni
    majd behívni és kicserélni a 3. at is
    ezt pythonnal meg lehetne oldani egyszerre?

    ez nem tudom lényeges-e, de esetleg ebből átláthatóbb:

    set "int=_w[0-9]+"
    set "int_new=_w999999999"
    call "jrepl" "!int!" "!int_new!" /m /f "link.txt" /o "result1.txt"
    setlocal enabledelayedexpansion
    set "int=_ps[0-9]+"
    set "int_new=_ps0000100"
    call "jrepl" "!int!" "!int_new!" /m /f "result1.txt" /o "final.txt"
    setlocal enabledelayedexpansion
    set "int=_pd[0-9]+"
    set "int_new=_pd60000000"
    call "jrepl" "!int!" "!int_new!" /m /f "final.txt" /o -

    ebből:
    https://stream7.nava.hu/navahu_bdrm/_definst_/amlst:mnfa-84/manifest_w1646702604_ps3854000_pd60000_qc2Vzc2lkPSZvbXE9dHJ1ZSZucD0mbGI9WDlYaVNvY3Q4dGpaJTJCRkt5UllXbWNxS1c3cWRZcDNnYmdOTUJVaks5MTduaUN4M1k5Sm1Vc2FPV0RyblFmV2pQbWdhM0FJVXFuYkdUJTBEJTBBNDZTUGRyZTAzUSUzRCUzRCUwRCUwQQ==.mpd

    erre:
    https://stream7.nava.hu/navahu_bdrm/_definst_/amlst:mnfa-84/manifest_w999999999_ps0000100_pd60000000_qc2Vzc2lkPSZvbXE9dHJ1ZSZucD0mbGI9WDlYaVNvY3Q4dGpaJTJCRkt5UllXbWNxS1c3cWRZcDNnYmdOTUJVaks5MTduaUN4M1k5Sm1Vc2FPV0RyblFmV2pQbWdhM0FJVXFuYkdUJTBEJTBBNDZTUGRyZTAzUSUzRCUzRCUwRCUwQQ==.mpd

    ezzel megtalálható
    "_w[0-9]+_ps[0-9]+_pd[0-9]+"

    de, hogyan lehetne felcseréltetni a benne lévő számokat mindig ezekre?

    _w999999999
    _ps0000100
    _pd60000000

  • Hege1234

    addikt

    Üdv,

    sorozat számozását (S5 E2) szeretném átírni úgy, hogy 0-9 ig mindig tartalmazzon egy 0-át
    és, hogy ne legyen köztük szünet

    Rick and Morty - S5 E2 Mortyplicity

    Rick and Morty - S05E02 Mortyplicity
    ezt valahogy a kiprintelt szövegből kellene re.sub-al kivitelezni?

    import json

    f = open('info.json', 'r')
    title = json.load(f)
    title = title[0]['body']['metadata']['hadron-legacy-telemetry']['seriesName']+' - '+title[1]['body']['details']['title'].replace(":", "")

    print(title)

    ebben a részben van benne
    title[1]['body']['details']['title'].replace(":", "")
    a replace : azért kellett mert tettek oda egy kettőspontot is...
    S5 E2: Mortyplicity
    S05E02 Mortyplicity

    köszi, előre is!

  • Hege1234

    addikt

    válasz cousin333 #3454 üzenetére

    köszönöm, tökéletesen működik! :R

    import re
    import json

    regex = r'S([1-9]*[0-9])\s?E([1-9]*[0-9]):?'

    def replacer(x):
    a, b = x.groups()
    return 'S' + a.rjust(2, '0') + 'E' + b.rjust(2, '0')

    f = open('info.json', 'r')
    title = json.load(f)
    title = title[0]['body']['metadata']['hadron-legacy-telemetry']['seriesName']+' - '+title[1]['body']['details']['title']

    done = re.sub(regex, replacer, title)
    print(done)

    Supernatural - S15E09 The Trap

  • Hege1234

    addikt

    Üdv,

    tud esetleg valaki egy olyan trükköt amivel lecserélhető az end=" "

    print('--key '+key, file=open("key.txt", "a+"), end=" ")

    csak a gond van vele... de semmi infót nem találok róla hogyan lehetne
    másképp megoldani azt, hogy egymás után tegye a kiadott értéket és ne egymás alá

    pl. end=" " nélkül így nézne ki a fájlban

    --key 010084
    --key 01053b

    (az, hogy hány darab "key" fog generálódni az random, lehet csak egy, de
    lehet akár 2 vagy 5-6 is)
    print-el valahogy össze lehet hozni így, hogy egymás után legyen téve?

    --key 010084 --key 01053b

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz axioma #3458 üzenetére

    egy ilyen rész még van a print előtt
    for key in keys:

    amikor minden ok nélkül új sorba teszi anélkül, hogy használtam volna a '\n' -t
    azt úgy nem tudom, hogyan kellene összegyűjtenem egy sorba

  • Hege1234

    addikt

    válasz Hege1234 #3459 üzenetére

    köszi, így sikerült rájönnöm, hogyan hagyjam el az end-et

    for key in keys:
      f = open("key.txt", "a+")
        f.write('--key '+key+' ')
        f.close

    felmerült még egy "probléma"

    szeretném ezeket a kulcsokat amik egy sorba kerültek a legvégére egy '\n' -t tenni
    viszont, ha ezt most így csinálom akkor ugyan ott vagyok ahonnan indultam

    for key in keys:
        f = open("key.txt", "a+")
      f.write('--key '+key+' '+'\n')
        f.close

    hogyan lehetne azt megcsinálni, hogy egy sorba teszi és a legvégén hozzáad egy új sort
    hogy következő alkalomkor is az egy sorba gyűjtött kulcsok már új sorba kerüljenek?

  • Hege1234

    addikt

    válasz axioma #3461 üzenetére

    a join-os példával nem sikerült, de a másikkal igen
    köszönöm :R

  • Hege1234

    addikt

    Üdv,

    ha szerepelnek ezek egy txt fájlban

    --abc 025df 1234 abcdef

    hogyan tudnám átalakítani hogy minden "szó" meglegyen toldva ezzel '',

    '--abc', '025df', '1234', 'abcdef',

    tesztként beleírtam egy txt fájlba kézzel és valamiért a subprocess már
    hozzáadott az elejére és a végére is egy "

    "'--abc', '025df', '1234', 'abcdef',"

    ez az aposztrófok miatt adódott hozzá?
    hogyan lehetne elkerülni, hogy hozzáadja?

  • Hege1234

    addikt

    válasz cousin333 #3489 üzenetére

    köszi, jónak tűnik a szöveges fájlban is, de valamiért itt is hozzáadódik az elejére és a végére a "

    mp4decr = dirPath + '/programok/mp4decrypt.exe'

    video = dirPath + '/Downloads/video.mp4'
    audio = dirPath + '/Downloads/video.aac'
    videoout = dirPath + '/Downloads/videoOUT.mp4'
    audioout = dirPath + '/Downloads/audioOUT.aac'


    with open("key.txt", "r") as fs:
    keys = fs.readlines()
    keys = keys[0].strip()


    debug = subprocess.run([mp4decr, keys, video, videoout])
    print(debug)

    debug2 = subprocess.run([mp4decr, keys, audio, audioout])
    print(debug2)



    ERROR: unexpected argument (I:\d-python/Downloads/videoOUT.mp4)
    CompletedProcess(args=['I:\\d-python/files/programok/mp4decrypt.exe', "'--key', '010023c4da1658b385f8a10dc7b17450:c4c1111bcde3c91357b50e6bb2a59ad3', '--key', '01051f72bf5ef290ccb970af41c57221:dad27bbe543d08bc0f545a355e3c4700', '--key', '010256b52c930f313823199d651d772e:b99212fc75e8e03b49bd9a0cf54190f1', '--key', '010100c9e8b349c1f159f05a9bedc74e:05326f0bdae9f59b6a24d69a59eae425'", 'I:\\d-python/Downloads/video.mp4', 'I:\\d-python/Downloads/videoOUT.mp4'], returncode=1)

    ERROR: unexpected argument (I:\d-python/Downloads/audioOUT.aac)
    CompletedProcess(args=['I:\\d-python/files/programok/mp4decrypt.exe', "'--key', '010023c4da1658b385f8a10dc7b17450:c4c1111bcde3c91357b50e6bb2a59ad3', '--key', '01051f72bf5ef290ccb970af41c57221:dad27bbe543d08bc0f545a355e3c4700', '--key', '010256b52c930f313823199d651d772e:b99212fc75e8e03b49bd9a0cf54190f1', '--key', '010100c9e8b349c1f159f05a9bedc74e:05326f0bdae9f59b6a24d69a59eae425'", 'I:\\d-python/Downloads/video.aac', 'I:\\d-python/Downloads/audioOUT.aac'], returncode=1)

    ilyen a formátuma amikor működik

    CompletedProcess(args=['I:\\d-python/files/programok/mp4decrypt.exe', '--key', '6761374a7eb04b59a595a943f4dbcdbe:ed38695f26825877db9b0335f2212bb9', 'I:\\d-python/Downloads/video.mp4', 'I:\\d-python/Downloads/videoOUT.mp4'], returncode=0)

    CompletedProcess(args=['I:\\d-python/files/programok/mp4decrypt.exe', '--key', '6761374a7eb04b59a595a943f4dbcdbe:ed38695f26825877db9b0335f2212bb9', 'I:\\d-python/Downloads/video.aac', 'I:\\d-python/Downloads/audioOUT.aac'], returncode=0)

    szerk:
    teszteltem amit itt írtál #3490
    így is hozzáadódik

    [ Szerkesztve ]

  • Hege1234

    addikt

    válasz cousin333 #3492 üzenetére

    tökéletesen működik,
    köszönöm szépen! :R

    bocsánat, hogy nem fejtettem ki már az elején

  • Hege1234

    addikt

    ezt, hogyan lehetne megoldani, hogy
    ha error van, mert nincsen találat és így a fájlt se tudta létrehozni
    attól még fusson le a többi és ne akassza meg a további folyamatokat?

    ha minden igaz elég lenne használni hozzá a try: és az except -et de eddig még nem sikerült
    rájönnöm, hogy hova és hogy hogyan :F

    esetleg van egy "univerzális" megoldás, ha error-t ír attól még folytassa tovább
    és ne akadjon el?
    értem én, hogy fontos, hogy látszódjon az error, de néha annyira feleslegesnek érzem, hogy emiatt megállítsa a teljes folyamatot

    subprocess.run(['python', 'srt-forced.py'])

    srt-forced.py tartalma:

    import re
    import sys

    http = open("manif2.mpd").read()

    link = re.findall("<BaseURL>(https:\/\/.*)</BaseURL>", http)
    link = link[0].strip()

    id = re.findall("<BaseURL>(videos/.*)</BaseURL>", http)
    id = id[0].strip()

    vtt = re.findall("[a-zA-Z]+-HU\sForced.*[^?.].*[^?.].*[^?.].*<SegmentTemplate media=.(.*vtt)", http)
    vtt = vtt[0].strip()
    vtt = re.sub("(.{8}).vtt", "1.vtt", vtt)

    print(link+id+vtt)
    print(link+id+vtt, file=open("link-hu-forced.txt", "w"))

    output error:

    Traceback (most recent call last):
    File "i:\d-python\srt-forced.py", line 13, in <module>
    vtt = vtt[0].strip()
    IndexError: list index out of range
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
    File "i:\d-python\decrypt.py", line 223, in max
    file = open("link-hu-forced.txt")
    FileNotFoundError: [Errno 2] No such file or directory: 'link-hu-forced.txt'

  • Hege1234

    addikt

    válasz cousin333 #3496 üzenetére

    ohh akkor tényleg muszály lesz minden error-t egyesével kezelni :Y :(((

    ezt írtam csak a végére és a try-ba írtam a problémás részt

    except IndexError:
    print('empty')

    sikerült is, és ha mégis van forced felirat akkor szépen működik:)
    köszi!

    [ Szerkesztve ]

  • Hege1234

    addikt

    Üdv,

    ez tudom, hogy így nem lehetséges mert csak szám lehet benne,
    i = [minoseg]
    de nem jöttem rá a megoldásra :F

    print('\nminőség kiválasztása: \n \n0 = 1080 \n1 = 720 \n2 = 540 \n3 = 480\n4 = 360')

    my_list = [1080, 720, 540, 480, 360]

    minoseg = input('\nírd ide a számot: ')

    i = [minoseg]
    quality = []
    for index in i:
    quality.append(my_list[index])
    print(*quality, sep = '')

    ha esetleg ehhez egy totál más megoldás kellene

    hogyan lehet azt megoldani, hogy ha az input részre beírom valamelyik számot
    pl. 1 akkor kiadja a 720 -at?

    minőség kiválasztása:
    0 = 1080
    1 = 720
    2 = 540
    3 = 480
    4 = 360
    írd ide a számot: 1
    720

  • Hege1234

    addikt

    válasz cousin333 #3500 üzenetére

    köszönöm! :R

    háát most így elnézve, valóban vérzett :D

    közben nekem is sikerült összehozni :)

    def pick(options):
    print("\nminőség kiválasztása:\n")

    for idx, element in enumerate(options):
    print("{} = {}".format(idx + 1, element))

    i = input("\nírd ide a számot: ")
    try:
    if 0 < int(i) <= len(options):
    return int(i) - 1
    except:
    pass
    return None

    options = ["1080", "720", "540", "480", "360"]
    res = pick(options)

    quality = options[res]
    print(quality)

    axioma:
    köszi neked is!

    bar szemely szerint inkabb az input-nal rogton konvertalnam
    ezt kifejtenéd kicsit bővebben?
    input-ot sokszor hasznánlom hátha későbbiekben hasznos lesz, ha egyből konvertálásra kerül

Új hozzászólás Aktív témák