Ú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 illeszteniimport 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
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 megTraceback (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
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)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
ohh most értettem meg amit kérdeztél
ezt a kodi kezeli azért kellett a pynput-ot is beleraknom a mappábaRunScript("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 -
Hege1234
addikt
Hali
mi okozhatja azt, hogy a result-al nem látom a data első részét? (time)
ezzel szűrveprint (resp['result']['item']['file'])
szépen megkapom az elérési utat de a "time" részt nem tudom elérniprint (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/@.mkvde 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
59ahogy 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
005259ilyen 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ájlba0 52 49
00524902 09 11
02091101 25 07
012507 -
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 nemimport 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
012456with 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ödikwith open('c:\\kodi\\info.txt', 'w') as outfile:
outfile.write(result[1]['result']['item']['file'],time))[ Szerkesztve ]
-
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 megoldaniha 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 mindiga 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.m3u8import 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 elhasalimport 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 definedha 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/a006urllib3.disable_warnings()
ez pedig a https linkek miatt kellettimport 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+AGgAdAB0AHAAc2.
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
i5fstZQAjiTCw6ZdzOjaSxrjwerror:
raise ValueError('Invalid header value %r' % (values[i],))
ValueError: Invalid header value b'i5fstZQAjiTCw6ZdzOjaSxrjw\naz 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 pythonnala 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ájlbaa 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
kelleni fog hozzá letölteni egy modult vagy az alap python is képes rá?
Python 3.9.0regex101 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ünetRick 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 Mortyplicityköszi, előre is!
-
Hege1234
addikt
válasz cousin333 #3454 üzenetére
köszönöm, tökéletesen működik!
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 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 indultamfor 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
Ü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
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 hogyanesetleg 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 folyamatotsubprocess.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
Üdv,
ez tudom, hogy így nem lehetséges mert csak szám lehet benne,
i = [minoseg]
de nem jöttem rá a megoldásraprint('\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!
háát most így elnézve, valóban vérzett
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
- iPhone topik
- Azonnali informatikai kérdések órája
- AMD Navi Radeon™ RX 6xxx sorozat
- Autós topik látogatók beszélgetős, offolós topikja
- Windows 11
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Gaming notebook topik
- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Crypto Trade
- BestBuy topik
- További aktív témák...