7b1114271eacf3e6f7bac05aaa5f991b019ccc0f
[enigma2-curlytx.git] / src / config.py
1 # -*- coding: utf-8 -*-
2 # CurlyTx configuration
3 # Copyright (C) 2011 Christian Weiske <cweiske@cweiske.de>
4 # License: GPLv3 or later
5
6 from Components.config import config, ConfigYesNo, ConfigSelection, ConfigNumber, ConfigText, ConfigSubsection, ConfigSubList, ConfigInteger
7
8 def createPage():
9     """ Create and return a configuration page object """
10     s = ConfigSubsection()
11     s.uri   = ConfigText(default="http://", fixed_size=False)
12     s.title = ConfigText(
13         default = "Page #" + str(len(config.plugins.CurlyTx.pages) + 1),
14         fixed_size = False
15         )
16     s.fontSize = ConfigInteger(20, (1, 100))
17     return s
18
19 def loadDefaultPageOptions():
20     defaults = []
21     for i in range(0, len(config.plugins.CurlyTx.pages)):
22         defaults.append((str(i), config.plugins.CurlyTx.pages[i].title.value))
23     if hasattr(config.plugins.CurlyTx, "defaultPage"):
24         config.plugins.CurlyTx.defaultPage.setChoices(defaults, "0")
25     else:
26         config.plugins.CurlyTx.defaultPage = ConfigSelection(defaults, "0")
27
28 def feedPagesToConfig(pages):
29     """ save pages from atom feed into config. """
30     if len(pages) == 0:
31         return
32
33     del config.plugins.CurlyTx.pages[:]
34
35     for pageData in pages:
36         page = createPage()
37         config.plugins.CurlyTx.pages.append(page)
38         page.title.setValue(pageData["title"])
39         page.uri.setValue(pageData["url"])
40
41 def savePageConfig():
42     for i in range(0, len(config.plugins.CurlyTx.pages)):
43         config.plugins.CurlyTx.pages[i].save()
44
45     config.plugins.CurlyTx.pages.save()
46
47
48 #configuration setup
49 config.plugins.CurlyTx = ConfigSubsection()
50 config.plugins.CurlyTx.menuMain = ConfigYesNo(default = True)
51 config.plugins.CurlyTx.menuExtensions = ConfigYesNo(default = False)
52 config.plugins.CurlyTx.menuTitle = ConfigText(default = "CurlyTx", fixed_size = False)
53 config.plugins.CurlyTx.feedUrl = ConfigText(default = "", fixed_size = False)
54 config.plugins.CurlyTx.pages = ConfigSubList()
55 for id,value in config.plugins.CurlyTx.pages.stored_values.iteritems():
56     config.plugins.CurlyTx.pages.append(createPage())
57 loadDefaultPageOptions()