notebook
This commit is contained in:
105
DatovaSchranka.py
Normal file
105
DatovaSchranka.py
Normal file
@@ -0,0 +1,105 @@
|
||||
# Přihlašovací údaje
|
||||
username = 'eupo5s'
|
||||
password = 'Michalka25+'
|
||||
schrankaid='bk7e6j2'
|
||||
|
||||
from zeep import Client
|
||||
from zeep.wsse.username import UsernameToken
|
||||
import time
|
||||
import os
|
||||
import base64
|
||||
|
||||
# Přihlašovací údaje
|
||||
USERNAME = 'eupo5s'
|
||||
PASSWORD = 'Michalka25+'
|
||||
WSDL_URL = 'https://..../ds.wsdl' # upravit dle prostředí
|
||||
|
||||
# Inicializace klienta
|
||||
client = Client(wsdl=WSDL_URL, wsse=UsernameToken(USERNAME, PASSWORD))
|
||||
|
||||
# Kontrola přihlášení
|
||||
try:
|
||||
owner_info = client.service.GetOwnerInfoFromLogin()
|
||||
except Exception as e:
|
||||
print(f"Chyba přihlášení: {e}")
|
||||
exit(1)
|
||||
|
||||
# Zobrazení základních údajů o přihlášeném účtu
|
||||
print("Přihlášen jako:", owner_info.dbID, owner_info.firmName)
|
||||
|
||||
# Vytvoření adresáře pro testovací soubory
|
||||
out_dir = os.path.abspath('test_isds_py')
|
||||
os.makedirs(out_dir, exist_ok=True)
|
||||
|
||||
# Vytvoření a odeslání testovacích zpráv
|
||||
filenames = []
|
||||
for i, text in enumerate(["První testovací soubor", "Druhý testovací soubor"], 1):
|
||||
fn = os.path.join(out_dir, f"TESTISDS_{i}.txt")
|
||||
with open(fn, 'w', encoding='utf-8') as f:
|
||||
f.write(text)
|
||||
filenames.append(fn)
|
||||
|
||||
# Nahraj přílohy
|
||||
files_struct = []
|
||||
for fn in filenames:
|
||||
with open(fn, "rb") as f:
|
||||
data = base64.b64encode(f.read()).decode('ascii')
|
||||
files_struct.append({
|
||||
'dmFileDescr': os.path.basename(fn),
|
||||
'dmMimeType': 'text/plain',
|
||||
'dmEncodedContent': data,
|
||||
})
|
||||
|
||||
# Vytvoření a odeslání zprávy (parametry uprav podle vlastního scénáře!)
|
||||
msg_id = client.service.CreateMessage(
|
||||
senderDBID=None,
|
||||
subject="Testovaci zasilka z Pythonu",
|
||||
isUrgent=False,
|
||||
senderOrgUnitCode=None,
|
||||
# níže: příjemce
|
||||
dbIDRecipient="231",
|
||||
recipientFirmName="Nase org jednotka",
|
||||
recipientOrgUnitNum=-1,
|
||||
recipientOrgUnitName="ncj. 589",
|
||||
receiverPersonCode=None,
|
||||
toHands="K rukam p.Novaka",
|
||||
deepAttachments=files_struct
|
||||
)
|
||||
|
||||
print("MessageID:", msg_id)
|
||||
|
||||
# Chvíle čekání
|
||||
time.sleep(5)
|
||||
|
||||
# Stažení přijatých zpráv v intervalu
|
||||
records = client.service.GetListOfReceivedMessages(
|
||||
startTime="2009-11-01T00:00:00",
|
||||
endTime="2010-10-01T00:00:00",
|
||||
recNo=0,
|
||||
maxRec=100,
|
||||
recordType=1023,
|
||||
customFilter=None
|
||||
)
|
||||
|
||||
for rec in records.dmRecord:
|
||||
print(f"ID zasilky: {rec.dmID}, odesilatel: {rec.dmSender}")
|
||||
received_id = rec.dmID
|
||||
break
|
||||
|
||||
# Stažení jedné zprávy
|
||||
msg = client.service.MessageDownload(received_id)
|
||||
print("Stažená zpráva:", msg.dmDm.dmID)
|
||||
|
||||
# Uložení souborů
|
||||
for file in msg.dmDm.dmFiles.dmFile:
|
||||
content = base64.b64decode(file.dmEncodedContent)
|
||||
path = os.path.join(out_dir, file.dmFileDescr)
|
||||
with open(path, 'wb') as f:
|
||||
f.write(content)
|
||||
print("Uloženo:", path)
|
||||
|
||||
# Označení jako stáhnuto
|
||||
client.service.MarkMessageAsDownloaded(received_id)
|
||||
print("Označeno jako přečtené")
|
||||
|
||||
# Můžeme pokračovat implementací dalších funkcí: GetDeliveryInfo, SignedMessageDownloadToFile, GetListOfSentMessages, FindDataBox, CheckDataBox…
|
||||
Reference in New Issue
Block a user