Files
DemonEditor/app/ftp.py

57 lines
1.9 KiB
Python
Raw Normal View History

2017-11-06 22:17:43 +03:00
from enum import Enum
2017-10-14 12:24:59 +03:00
from ftplib import FTP
import os
2017-11-06 22:17:43 +03:00
2017-10-14 12:24:59 +03:00
__DATA_FILES_LIST = ("tv", "radio", "lamedb")
2017-11-06 22:17:43 +03:00
class DownloadDataType(Enum):
ALL = 0
BOUQUETS = 1
SATELLITES = 2
def download_data(*, properties, download_type=DownloadDataType.ALL):
2017-10-14 12:24:59 +03:00
with FTP(properties["host"]) as ftp:
ftp.login(user=properties["user"], passwd=properties["password"])
save_path = properties["data_dir_path"]
files = []
2017-11-06 22:17:43 +03:00
# bouquets section
if download_type is DownloadDataType.ALL or download_type is DownloadDataType.BOUQUETS:
ftp.cwd(properties["services_path"])
ftp.dir(files.append)
for file in files:
name = str(file).strip()
if name.endswith(__DATA_FILES_LIST):
name = name.split()[-1]
with open(save_path + name, 'wb') as f:
ftp.retrbinary('RETR ' + name, f.write)
2017-10-14 12:24:59 +03:00
# satellites.xml section
2017-11-06 22:17:43 +03:00
if download_type is DownloadDataType.ALL or download_type is DownloadDataType.SATELLITES:
ftp.cwd(properties["satellites_xml_path"])
files.clear()
ftp.dir(files.append)
for file in files:
name = str(file).strip()
xml_file = "satellites.xml"
if name.endswith(xml_file):
with open(save_path + xml_file, 'wb') as f:
ftp.retrbinary('RETR ' + xml_file, f.write)
2017-10-26 01:23:05 +03:00
2017-10-14 12:24:59 +03:00
return ftp.voidcmd("NOOP")
2017-11-06 22:17:43 +03:00
def upload_data(*, properties, download_type=DownloadDataType.ALL, remove_unused=False):
2017-10-14 12:24:59 +03:00
load_path = properties["data_dir_path"]
2017-10-26 01:23:05 +03:00
2017-10-14 12:24:59 +03:00
for file_name in os.listdir(load_path):
print(file_name)
# Open the file for transfer in binary mode
# f = open(file_name, "rb")
# transfer the file into receiver
# send = ftp.storbinary("STOR " + file_name, f)