]> git.ipfire.org Git - ipfire.org.git/blame - webapp/backend/base.py
fireinfo: Only list countries on start page when >= 1% usage
[ipfire.org.git] / webapp / backend / base.py
CommitLineData
a6dc0bad
MT
1#!/usr/bin/python
2
9068dba1 3import ConfigParser as configparser
a6dc0bad
MT
4
5import accounts
9068dba1
MT
6import ads
7import database
8import geoip
66862195 9import fireinfo
9068dba1
MT
10import iuse
11import memcached
12import mirrors
13import netboot
66862195 14import nopaste
9068dba1 15import news
a6dc0bad 16import planet
9068dba1
MT
17import releases
18import settings
66862195 19import talk
a6dc0bad
MT
20
21class Backend(object):
2cd9af74 22 def __init__(self, configfile, debug=False):
9068dba1
MT
23 # Read configuration file.
24 self.config = self.read_config(configfile)
2cd9af74 25 self.debug = debug
9068dba1
MT
26
27 # Setup database.
28 self.setup_database()
a6dc0bad 29
9068dba1
MT
30 # Initialize settings first.
31 self.settings = settings.Settings(self)
32 self.memcache = memcached.Memcached(self)
33
34 # Initialize backend modules.
a6dc0bad 35 self.accounts = accounts.Accounts(self)
9068dba1
MT
36 self.advertisements = ads.Advertisements(self)
37 self.downloads = mirrors.Downloads(self)
38 self.geoip = geoip.GeoIP(self)
66862195 39 self.fireinfo = fireinfo.Fireinfo(self)
9068dba1
MT
40 self.iuse = iuse.IUse(self)
41 self.mirrors = mirrors.Mirrors(self)
42 self.netboot = netboot.NetBoot(self)
66862195 43 self.nopaste = nopaste.Nopaste(self)
9068dba1 44 self.news = news.News(self)
a6dc0bad 45 self.planet = planet.Planet(self)
9068dba1 46 self.releases = releases.Releases(self)
66862195 47 self.talk = talk.Talk(self)
9068dba1
MT
48
49 def read_config(self, configfile):
50 cp = configparser.ConfigParser()
51 cp.read(configfile)
52
53 return cp
54
55 def setup_database(self):
56 """
57 Sets up the database connection.
58 """
59 credentials = {
60 "host" : self.config.get("database", "server"),
61 "database" : self.config.get("database", "database"),
62 "user" : self.config.get("database", "username"),
63 "password" : self.config.get("database", "password"),
64 }
65
66 self.db = database.Connection(**credentials)