processor settings sor
This commit is contained in:
86
modules/processors.py
Normal file
86
modules/processors.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import time
|
||||
|
||||
from encryptedscreenshot import EncryptedScreenshot, Signer
|
||||
import getpass, os
|
||||
from PythonQt.QtGui import QInputDialog
|
||||
from PythonQt.QtCore import QSettings
|
||||
from seafapi import *
|
||||
|
||||
class Processor:
|
||||
|
||||
def configure(self,parent):
|
||||
pass
|
||||
|
||||
def is_configured(self):
|
||||
return True
|
||||
|
||||
def upload(self,file):
|
||||
pass
|
||||
|
||||
|
||||
class DefaultProcessor(Processor):
|
||||
|
||||
def __init__(self,seaf_lib,lib_path):
|
||||
self.seaf_lib = seaf_lib
|
||||
self.lib_path = lib_path
|
||||
|
||||
def upload(self,file,name):
|
||||
return self.seaf_lib.upload(file,name,self.lib_path).share()
|
||||
|
||||
class EncryptedProcessor(Processor):
|
||||
|
||||
def __init__(self,seaf_lib,lib_path):
|
||||
self.seaf_lib = seaf_lib
|
||||
self.lib_path = lib_path
|
||||
self.load_settings()
|
||||
self.host = ""
|
||||
|
||||
def load_settings(self):
|
||||
settings = QSettings()
|
||||
settings.beginGroup("uploaders")
|
||||
settings.beginGroup("seafile")
|
||||
settings.beginGroup("encscreen")
|
||||
self.host = settings.value("url", "")
|
||||
settings.endGroup()
|
||||
settings.endGroup()
|
||||
settings.endGroup()
|
||||
|
||||
def save_settings(self):
|
||||
settings = QSettings()
|
||||
settings.beginGroup("uploaders")
|
||||
settings.beginGroup("seafile")
|
||||
settings.beginGroup("encscreen")
|
||||
settings.setValue("url", self.host)
|
||||
settings.endGroup()
|
||||
settings.endGroup()
|
||||
settings.endGroup()
|
||||
|
||||
def is_configured(self):
|
||||
return self.host is not None and self.host != ""
|
||||
|
||||
def configure(self,parent):
|
||||
self.host = QInputDialog.getText(parent, 'Encscreen Server Setup', 'Enter server url (ex. https://servertld/s#%id%key):', text="https://screens.shimun.net/s#%id%key")
|
||||
self.save_settings()
|
||||
|
||||
def upload(self,file,name):
|
||||
enrypted = EncryptedScreenshot({
|
||||
"owner": unicode(getpass.getuser()),
|
||||
"format": unicode(str(file).split('.')[-1]),
|
||||
"title": unicode(name),
|
||||
"timestamp": int(time.time() * 1000),
|
||||
"size": os.stat(file).st_size
|
||||
},signer=Signer.default())
|
||||
tmpHandle = open(file + "c", 'wb')
|
||||
tmpHandle.write(enrypted.assemble(file))
|
||||
tmpHandle.close()
|
||||
seaf_file = self.seaf_lib.upload(file + "c",name + ".enc",self.lib_path)
|
||||
if not seaf_file:
|
||||
return
|
||||
seaf_link = seaf_file.share()
|
||||
if seaf_link:
|
||||
id = str(seaf_link).split('/')[-2]
|
||||
return self.host.replace('%id', id).replace('%key',"%s" % enrypted.password)
|
||||
else:
|
||||
return False
|
||||
|
||||
|
Reference in New Issue
Block a user