commit
45305cf234
6 changed files with 134 additions and 74 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -72,3 +72,4 @@ config-dev.ini
|
||||||
.python-version
|
.python-version
|
||||||
stacosys.sublime-project
|
stacosys.sublime-project
|
||||||
stacosys.sublime-workspace
|
stacosys.sublime-workspace
|
||||||
|
out/
|
|
@ -5,49 +5,112 @@
|
||||||
# pre: false
|
# pre: false
|
||||||
# features: []
|
# features: []
|
||||||
# all-features: false
|
# all-features: false
|
||||||
|
# with-sources: false
|
||||||
|
# generate-hashes: false
|
||||||
|
# universal: false
|
||||||
|
|
||||||
-e file:.
|
-e file:.
|
||||||
altgraph==0.17.4
|
altgraph==0.17.4
|
||||||
astroid==3.1.0
|
# via pyinstaller
|
||||||
|
astroid==3.2.4
|
||||||
|
# via pylint
|
||||||
background==0.2.1
|
background==0.2.1
|
||||||
black==24.3.0
|
# via stacosys
|
||||||
blinker==1.7.0
|
black==24.8.0
|
||||||
certifi==2024.2.2
|
blinker==1.8.2
|
||||||
|
# via flask
|
||||||
|
certifi==2024.8.30
|
||||||
|
# via requests
|
||||||
charset-normalizer==3.3.2
|
charset-normalizer==3.3.2
|
||||||
|
# via requests
|
||||||
click==8.1.7
|
click==8.1.7
|
||||||
coverage==6.5.0
|
# via black
|
||||||
coveralls==3.3.1
|
# via flask
|
||||||
|
coverage==7.6.1
|
||||||
|
# via coveralls
|
||||||
|
# via pytest-cov
|
||||||
|
coveralls==4.0.1
|
||||||
dill==0.3.8
|
dill==0.3.8
|
||||||
|
# via pylint
|
||||||
docopt==0.6.2
|
docopt==0.6.2
|
||||||
exceptiongroup==1.2.0
|
# via coveralls
|
||||||
|
exceptiongroup==1.2.2
|
||||||
|
# via pytest
|
||||||
flask==3.0.3
|
flask==3.0.3
|
||||||
idna==3.7
|
# via stacosys
|
||||||
|
idna==3.9
|
||||||
|
# via requests
|
||||||
|
importlib-metadata==8.5.0
|
||||||
|
# via flask
|
||||||
|
# via markdown
|
||||||
|
# via pyinstaller
|
||||||
|
# via pyinstaller-hooks-contrib
|
||||||
iniconfig==2.0.0
|
iniconfig==2.0.0
|
||||||
|
# via pytest
|
||||||
isort==5.13.2
|
isort==5.13.2
|
||||||
itsdangerous==2.1.2
|
# via pylint
|
||||||
jinja2==3.1.3
|
itsdangerous==2.2.0
|
||||||
markdown==3.6
|
# via flask
|
||||||
|
jinja2==3.1.4
|
||||||
|
# via flask
|
||||||
|
markdown==3.7
|
||||||
|
# via stacosys
|
||||||
markupsafe==2.1.5
|
markupsafe==2.1.5
|
||||||
|
# via jinja2
|
||||||
|
# via werkzeug
|
||||||
mccabe==0.7.0
|
mccabe==0.7.0
|
||||||
mypy==1.9.0
|
# via pylint
|
||||||
|
mypy==1.11.2
|
||||||
mypy-extensions==1.0.0
|
mypy-extensions==1.0.0
|
||||||
packaging==24.0
|
# via black
|
||||||
|
# via mypy
|
||||||
|
packaging==24.1
|
||||||
|
# via black
|
||||||
|
# via pyinstaller
|
||||||
|
# via pyinstaller-hooks-contrib
|
||||||
|
# via pytest
|
||||||
pathspec==0.12.1
|
pathspec==0.12.1
|
||||||
platformdirs==4.2.0
|
# via black
|
||||||
pluggy==1.4.0
|
platformdirs==4.3.3
|
||||||
pydal==20231114.3
|
# via black
|
||||||
pyinstaller==6.5.0
|
# via pylint
|
||||||
pyinstaller-hooks-contrib==2024.3
|
pluggy==1.5.0
|
||||||
pylint==3.1.0
|
# via pytest
|
||||||
|
pydal==20240906.1
|
||||||
|
# via stacosys
|
||||||
|
pyinstaller==6.10.0
|
||||||
|
pyinstaller-hooks-contrib==2024.8
|
||||||
|
# via pyinstaller
|
||||||
|
pylint==3.2.7
|
||||||
pyrss2gen==1.1
|
pyrss2gen==1.1
|
||||||
pytest==8.1.1
|
# via stacosys
|
||||||
|
pytest==8.3.3
|
||||||
|
# via pytest-cov
|
||||||
pytest-cov==5.0.0
|
pytest-cov==5.0.0
|
||||||
requests==2.31.0
|
requests==2.32.3
|
||||||
|
# via coveralls
|
||||||
|
# via stacosys
|
||||||
|
setuptools==74.1.2
|
||||||
|
# via pyinstaller
|
||||||
|
# via pyinstaller-hooks-contrib
|
||||||
tomli==2.0.1
|
tomli==2.0.1
|
||||||
tomlkit==0.12.4
|
# via black
|
||||||
types-markdown==3.6.0.20240316
|
# via coverage
|
||||||
typing-extensions==4.11.0
|
# via mypy
|
||||||
urllib3==2.2.1
|
# via pylint
|
||||||
werkzeug==3.0.2
|
# via pytest
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
tomlkit==0.13.2
|
||||||
setuptools==69.3.0
|
# via pylint
|
||||||
|
types-markdown==3.7.0.20240822
|
||||||
|
# via stacosys
|
||||||
|
typing-extensions==4.12.2
|
||||||
|
# via astroid
|
||||||
|
# via black
|
||||||
|
# via mypy
|
||||||
|
# via pylint
|
||||||
|
urllib3==2.2.3
|
||||||
|
# via requests
|
||||||
|
werkzeug==3.0.4
|
||||||
|
# via flask
|
||||||
|
zipp==3.20.2
|
||||||
|
# via importlib-metadata
|
||||||
|
|
|
@ -5,22 +5,48 @@
|
||||||
# pre: false
|
# pre: false
|
||||||
# features: []
|
# features: []
|
||||||
# all-features: false
|
# all-features: false
|
||||||
|
# with-sources: false
|
||||||
|
# generate-hashes: false
|
||||||
|
# universal: false
|
||||||
|
|
||||||
-e file:.
|
-e file:.
|
||||||
background==0.2.1
|
background==0.2.1
|
||||||
blinker==1.7.0
|
# via stacosys
|
||||||
certifi==2024.2.2
|
blinker==1.8.2
|
||||||
|
# via flask
|
||||||
|
certifi==2024.8.30
|
||||||
|
# via requests
|
||||||
charset-normalizer==3.3.2
|
charset-normalizer==3.3.2
|
||||||
|
# via requests
|
||||||
click==8.1.7
|
click==8.1.7
|
||||||
|
# via flask
|
||||||
flask==3.0.3
|
flask==3.0.3
|
||||||
idna==3.7
|
# via stacosys
|
||||||
itsdangerous==2.1.2
|
idna==3.9
|
||||||
jinja2==3.1.3
|
# via requests
|
||||||
markdown==3.6
|
importlib-metadata==8.5.0
|
||||||
|
# via flask
|
||||||
|
# via markdown
|
||||||
|
itsdangerous==2.2.0
|
||||||
|
# via flask
|
||||||
|
jinja2==3.1.4
|
||||||
|
# via flask
|
||||||
|
markdown==3.7
|
||||||
|
# via stacosys
|
||||||
markupsafe==2.1.5
|
markupsafe==2.1.5
|
||||||
pydal==20231114.3
|
# via jinja2
|
||||||
|
# via werkzeug
|
||||||
|
pydal==20240906.1
|
||||||
|
# via stacosys
|
||||||
pyrss2gen==1.1
|
pyrss2gen==1.1
|
||||||
requests==2.31.0
|
# via stacosys
|
||||||
types-markdown==3.6.0.20240316
|
requests==2.32.3
|
||||||
urllib3==2.2.1
|
# via stacosys
|
||||||
werkzeug==3.0.2
|
types-markdown==3.7.0.20240822
|
||||||
|
# via stacosys
|
||||||
|
urllib3==2.2.3
|
||||||
|
# via requests
|
||||||
|
werkzeug==3.0.4
|
||||||
|
# via flask
|
||||||
|
zipp==3.20.2
|
||||||
|
# via importlib-metadata
|
||||||
|
|
|
@ -8,9 +8,11 @@ class Messages:
|
||||||
|
|
||||||
def load_messages(self, lang):
|
def load_messages(self, lang):
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read(os.path.join(os.path.dirname(__file__), 'messages_' + lang + '.properties'))
|
config.read(
|
||||||
|
os.path.join(os.path.dirname(__file__), "messages_" + lang + ".properties")
|
||||||
|
)
|
||||||
|
|
||||||
for key, value in config.items('messages'):
|
for key, value in config.items("messages"):
|
||||||
self.property_dict[key] = value
|
self.property_dict[key] = value
|
||||||
|
|
||||||
def get(self, key):
|
def get(self, key):
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: UTF-8 -*-
|
|
||||||
|
|
||||||
from dataclasses import dataclass
|
|
||||||
from datetime import datetime
|
|
||||||
from typing import List
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class Part:
|
|
||||||
content: str
|
|
||||||
content_type: str
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class Attachment:
|
|
||||||
filename: str
|
|
||||||
content: str
|
|
||||||
content_type: str
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class Email:
|
|
||||||
id: int
|
|
||||||
encoding: str
|
|
||||||
date: datetime
|
|
||||||
from_addr: str
|
|
||||||
to_addr: str
|
|
||||||
subject: str
|
|
||||||
parts: List[Part]
|
|
||||||
attachments: List[Attachment]
|
|
||||||
plain_text_content: str
|
|
|
@ -101,5 +101,5 @@ if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
main(args.config)
|
main(args.config)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"Failed to start application: {e}")
|
logging.error("Failed to start application: %s", e)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
Loading…
Add table
Reference in a new issue