Get it to actually work

This commit is contained in:
Kumi 2023-01-09 17:41:18 +00:00
parent 5a1f8533b0
commit ef1537fcf2
Signed by: kumi
GPG key ID: ECBCC9082395383F
2 changed files with 20 additions and 14 deletions

View file

@ -15,10 +15,10 @@ class Config:
@property
def directories(self):
for section in self._parser.sections:
for section in self._parser.sections():
if section.startswith("Directory "):
yield Directory.from_config(section)
yield Directory.from_config(self._parser[section])
@property
def server(self):
return Server(self._parser["Server"])
return Server.from_config(self._parser["Server"])

View file

@ -35,13 +35,14 @@ if __name__ == "__main__":
try:
with config.server.get_sftp_client() as sftp:
for response in sftp.listdir(config.server.outpath):
if (time.time() - sftp.stat(response).st_mtime < 60):
rpath = str(Path(config.server.outpath) / response)
if (time.time() - sftp.stat(rpath).st_mtime < 60):
continue
encrypted: bytes = sftp.open(response).read()
decrypted = GPG().decrypt(encrypted)
encrypted: bytes = sftp.open(rpath).read()
decrypted = GPG().decrypt(encrypted).data.decode()
dirname = Path(outpath).name.split("_")[0]
dirname = response.split("_")[0]
founddir = None
@ -53,16 +54,21 @@ if __name__ == "__main__":
if not founddir:
founddir = directory
outfile = Path("_".join(Path(outpath).name.split("_")[1:]))
if founddir.name == dirname:
outfile = response.split("_")[1:]
else:
outfile = response
assert not outfile.exists()
outpath = Path(directory.destination) / outfile
outfile.write_text(decrypted)
assert not outpath.exists()
outpath.write_text(decrypted)
if founddir.destinationbackup:
(Path(founddir.destinationbackup) / outfile.name).write_text(decrypted)
(Path(founddir.destinationbackup) / outfile).write_text(decrypted)
sftp.remove(response)
sftp.remove(rpath)
except:
print(f"Something went wrong downloading files from the server.")
except Exception as e:
print(f"Something went wrong downloading files from the server: {e}")