mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 19:28:09 -06:00
Mastodon: Added template editor
This commit is contained in:
parent
a1878f10b3
commit
eedcb49f3d
40
src/controller/mastodon/templateEditor.py
Normal file
40
src/controller/mastodon/templateEditor.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import wx
|
||||||
|
from typing import List
|
||||||
|
from sessions.mastodon.templates import post_variables, conversation_variables, person_variables
|
||||||
|
from wxUI.dialogs.twitterDialogs import templateDialogs
|
||||||
|
|
||||||
|
class EditTemplate(object):
|
||||||
|
def __init__(self, template: str, type: str) -> None:
|
||||||
|
super(EditTemplate, self).__init__()
|
||||||
|
self.default_template = template
|
||||||
|
if type == "post":
|
||||||
|
self.variables = post_variables
|
||||||
|
elif type == "conversation":
|
||||||
|
self.variables = conversation_variables
|
||||||
|
else:
|
||||||
|
self.variables = person_variables
|
||||||
|
self.template: str = template
|
||||||
|
|
||||||
|
def validate_template(self, template: str) -> bool:
|
||||||
|
used_variables: List[str] = re.findall("\$\w+", template)
|
||||||
|
validated: bool = True
|
||||||
|
for var in used_variables:
|
||||||
|
if var[1:] not in self.variables:
|
||||||
|
validated = False
|
||||||
|
return validated
|
||||||
|
|
||||||
|
def run_dialog(self) -> str:
|
||||||
|
dialog = templateDialogs.EditTemplateDialog(template=self.template, variables=self.variables, default_template=self.default_template)
|
||||||
|
response = dialog.ShowModal()
|
||||||
|
if response == wx.ID_SAVE:
|
||||||
|
validated: bool = self.validate_template(dialog.template.GetValue())
|
||||||
|
if validated == False:
|
||||||
|
templateDialogs.invalid_template()
|
||||||
|
self.template = dialog.template.GetValue()
|
||||||
|
return self.run_dialog()
|
||||||
|
else:
|
||||||
|
return dialog.template.GetValue()
|
||||||
|
else:
|
||||||
|
return ""
|
Loading…
Reference in New Issue
Block a user