Skip to content

Commit

Permalink
add settings
Browse files Browse the repository at this point in the history
  • Loading branch information
RomainL972 committed May 3, 2020
1 parent 787019c commit bc3844c
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 7 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ __pycache__
*.pyc
.pytest_cache
trust.txt
settings.yaml
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Trust functionnality
- Translation of all messages in French
- Translation of all messages in English
- Settings

### Fixed
- Messages received when connexion not trusted are buffered instead of diplayed
Expand Down
2 changes: 2 additions & 0 deletions src/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from backend import TuringChat
from trust import TrustManager
from translate import tr
from settings import Settings
import re


Expand All @@ -20,6 +21,7 @@ def __init__(self, uiPrintMessage, sendQuit=None):
self.otherUsername = None
self.trustManager = TrustManager(self.printMessage)
self.msgBuffer = []
self.settings = Settings(self.printMessage)

def printMessage(self, text, message=False, username=None):
if message and not self.trustManager.connexionTrusted():
Expand Down
40 changes: 40 additions & 0 deletions src/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import os
import yaml

class Settings():
def __init__(self, printMessage):
self.settingsFile = "settings.yaml"
self.printMessage = printMessage
self.settings = self.getSettingsFile()
if not self.settings:
self.settings = self.getDefaultSettings()
self.saveSettings()

def getDefaultSettings(self):
return {
"username": "User",
"language": "fr"
}

def getSettingsFile(self):
if os.path.isfile(self.settingsFile):
with open(self.settingsFile, "r") as f:
try:
return yaml.safe_load(f)
except yaml.YAMLError as exc:
self.printMessage(exc)
return None

def setSetting(self, setting, value):
self.settings[setting] = value
self.saveSettings()

def getSetting(self, setting):
return self.settings[setting]

def saveSettings(self):
with open(self.settingsFile, "w") as f:
try:
yaml.safe_dump(self.settings, f)
except yaml.YAMLError as exc:
self.printMessage(exc)
21 changes: 14 additions & 7 deletions src/translate.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
import yaml
import os

script_dir = os.path.dirname(__file__)
rel_path = "translations/fr.yaml"
data = {}

with open(os.path.join(script_dir, rel_path), 'r') as stream:
try:
data = yaml.safe_load(stream)
except yaml.YAMLError as exc:
print(exc)
def loadMessages(language="fr"):
global data

script_dir = os.path.dirname(__file__)
rel_path = "translations/" + language + ".yaml"

with open(os.path.join(script_dir, rel_path), 'r') as stream:
try:
data = yaml.safe_load(stream)
except yaml.YAMLError as exc:
print(exc)

def getMessage(data, keys):
if isinstance(data, str):
Expand All @@ -19,3 +24,5 @@ def getMessage(data, keys):
def tr(message):
keys = message.split(".")
return getMessage(data, keys)

loadMessages()

0 comments on commit bc3844c

Please sign in to comment.