コード例 #1
0
 def initialize(cls, url=None):
     if url:
         cls._url = url
     try:
         cls.defaultLocaleString = locale.getdefaultlocale()[0]
         if not cls.defaultLocaleString in cls.supportedLocales:
             cls.defaultLocaleString = cls.fallbackLocale
     except:
         cls.defaultLocaleString = cls.fallbackLocale
     
     cls._messages = cls.loadMessagesForLocale(cls.defaultLocaleString)
     cls._toggleMessages = cls.loadMessagesForLocale(cls._messages["toggleLocale"])
     
     try:
         cls._lunchMenus, cls._additives = cls.readLunchMenus(cls.defaultLocaleString, cls._messages)
     except Exception as e:
         log_exception(u"Error reading lunch menus")
         cls._lunchMenus = []
         for _ in range(5):
             cls._lunchMenus.append(e)
         pass
     
     try:
         cls._toggleLunchMenus, cls._toggleAdditives = cls.readLunchMenus(cls._messages['toggleLocale'], cls._toggleMessages)
     except Exception as e:
         cls._toggleLunchMenus = []
         for _ in range(5):
             cls._toggleLunchMenus.append(e)
         pass
     
     cls._allLunchMenus = cls._lunchMenus + cls._toggleLunchMenus
     cls._lastUpdate = datetime.datetime.now()
コード例 #2
0
    def initialize(cls, url=None):
        if url:
            cls._url = url
        try:
            cls.defaultLocaleString = locale.getdefaultlocale()[0]
            if not cls.defaultLocaleString in cls.supportedLocales:
                cls.defaultLocaleString = cls.fallbackLocale
        except:
            cls.defaultLocaleString = cls.fallbackLocale

        cls._messages = cls.loadMessagesForLocale(cls.defaultLocaleString)
        cls._toggleMessages = cls.loadMessagesForLocale(
            cls._messages["toggleLocale"])

        try:
            cls._lunchMenus, cls._additives = cls.readLunchMenus(
                cls.defaultLocaleString, cls._messages)
        except Exception as e:
            log_exception(u"Error reading lunch menus")
            cls._lunchMenus = []
            for _ in range(5):
                cls._lunchMenus.append(e)
            pass

        try:
            cls._toggleLunchMenus, cls._toggleAdditives = cls.readLunchMenus(
                cls._messages['toggleLocale'], cls._toggleMessages)
        except Exception as e:
            cls._toggleLunchMenus = []
            for _ in range(5):
                cls._toggleLunchMenus.append(e)
            pass

        cls._allLunchMenus = cls._lunchMenus + cls._toggleLunchMenus
        cls._lastUpdate = datetime.datetime.now()
コード例 #3
0
 def create_connection(self, options):
     newconn = None
     try:
         newconn = lunchSQLTrace(options["trace_file"])
         newconn.open()
     except:
         log_exception("DB trace plugin: Problem while opening trace file " + options["trace_file"])   
         raise
     
     return newconn
コード例 #4
0
 def activate_rocket_launcher(self, _setting, newVal):
     '''only called if not remote_only -> the rocket launcher is attached to this peer'''
     if not newVal:
         try:
             from pyrocket_backend import RocketManager
             self.rocket_controller = RocketManager()
          
             err_msg = self.rocket_controller.acquire_devices()
             if err_msg:
                 raise Exception(err_msg)
              
             self.launcher = self.rocket_controller.launchers[0]
         except Exception as e:
             log_exception("USB Rocket launcher could not be activated: ", e)
             self.launcher = None
             #-> problem while activating: only remote control!
             return True
         
     return newVal
コード例 #5
0
 def createNotebook(self):
     self.combobox.setCurrentIndex(0)
     for _ in range(self.menuNotebook.count()):
         self.menuNotebook.removeWidget(self.menuNotebook.widget(0))
     curMessages = self.messages
     curAdditives = self.additives
     for index in range(10):
         if index == 5:
             try:
                 if getPlatform() != PLATFORM_WINDOWS:
                     locale.setlocale(locale.LC_TIME, (self.messages["toggleLocale"],"UTF-8"))
             except:
                 log_exception("error setting locale")
             curMessages = self.toggleMessages
             curAdditives = self.toggleAdditives
         pageWidget = QWidget(self.menuNotebook)
         page = QVBoxLayout(pageWidget)
         thisLunchMenu = LunchMenu.allLunchMenus()[index]
         if thisLunchMenu != None and type(thisLunchMenu) == LunchMenu:
             title = curMessages['lunchMenuFor'] + u" " + thisLunchMenu.lunchDate.strftime(curMessages['dateFormatDisplayed']).decode("utf-8")
             self.addMenuLine(pageWidget, title, page, True)
             if thisLunchMenu.isValid():
                 self.addMenuContent(pageWidget, curMessages['soupDisplayed'], thisLunchMenu.contents, page, curMessages, curAdditives)
                 self.addMenuContent(pageWidget, curMessages['mainDishesDisplayed'], thisLunchMenu.contents, page, curMessages, curAdditives)
                 self.addMenuContent(pageWidget, curMessages['supplementsDisplayed'], thisLunchMenu.contents, page, curMessages, curAdditives)
                 self.addMenuContent(pageWidget, curMessages['dessertsDisplayed'], thisLunchMenu.contents, page, curMessages, curAdditives)
             else:
                 self.addMenuLine(pageWidget, curMessages['noLunchToday'], page)
         elif type(thisLunchMenu) == locale.Error:
             self.addLocaleErrorPage(pageWidget, page, index >= 5)
             pass
         elif isinstance(thisLunchMenu, Exception):
             self.addExceptionPage(pageWidget, page, thisLunchMenu, index >= 5)
         
         self.menuNotebook.addWidget(pageWidget)
     try:
         if getPlatform() != PLATFORM_WINDOWS:
             locale.setlocale(locale.LC_TIME, (LunchMenu.defaultLocaleString,"UTF-8"))
     except:
         log_exception("error setting locale")
     
     self.goToday()
コード例 #6
0
    def activate_rocket_launcher(self, _setting, newVal):
        '''only called if not remote_only -> the rocket launcher is attached to this peer'''
        if not newVal:
            try:
                from pyrocket_backend import RocketManager
                self.rocket_controller = RocketManager()

                err_msg = self.rocket_controller.acquire_devices()
                if err_msg:
                    raise Exception(err_msg)

                self.launcher = self.rocket_controller.launchers[0]
            except Exception as e:
                log_exception("USB Rocket launcher could not be activated: ",
                              e)
                self.launcher = None
                #-> problem while activating: only remote control!
                return True

        return newVal
コード例 #7
0
 def write_info_html(self):
     try:
         if len(get_peers())==0:
             with codecs.open(self.options["html_dir"]+"/index.html","w",'utf-8') as indexhtml:
                 indexhtml.write("<title>Lunchinator</title><meta http-equiv='refresh' content='5' >no peers\n")
                 return
         
         table_data = {"id":[""]*len(get_peers())}
         index = 0
         peerIDs = get_peers().getPeers()
         for peerID in peerIDs:
             infodict = get_peers().getPeerInfo(pID=peerID)
             if infodict == None:
                 infodict = {}
             table_data["id"][index] = peerID
             for k,v in infodict.iteritems():
                 if not table_data.has_key(k):
                     table_data[k]=[""]*len(get_peers())
                 if k=="avatar" and os.path.isfile(get_settings().get_avatar_dir()+"/"+v):
                     table_data[k][index]="<img width='200' src=\"avatars/%s\" />"%v
                 else:
                     table_data[k][index]=v
             index+=1
                     
         with codecs.open(self.options["html_dir"]+"/index.html","w",'utf-8') as indexhtml:
             indexhtml.write("<title>Lunchinator</title><meta http-equiv='refresh' content='5' ><table>\n")
             indexhtml.write("<tr>") 
             for th in table_data.iterkeys():
                 indexhtml.write("<th>%s</th>"%th) 
             indexhtml.write("</tr>") 
             for i in range(0,len(get_peers())):
                 indexhtml.write("<tr>") 
                 for k in table_data.iterkeys():
                     indexhtml.write("<td>%s</td>"%table_data[k][i]) 
                 indexhtml.write("</tr>") 
             indexhtml.write("</table>\n")
             #indexhtml.write(get_settings().get_version())
     except:
         log_exception("HTTP plugin: problem while writing html file")
コード例 #8
0
    def createNotebook(self):
        self.combobox.setCurrentIndex(0)
        for _ in range(self.menuNotebook.count()):
            self.menuNotebook.removeWidget(self.menuNotebook.widget(0))
        curMessages = self.messages
        curAdditives = self.additives
        for index in range(10):
            if index == 5:
                try:
                    if getPlatform() != PLATFORM_WINDOWS:
                        locale.setlocale(
                            locale.LC_TIME,
                            (self.messages["toggleLocale"], "UTF-8"))
                except:
                    log_exception("error setting locale")
                curMessages = self.toggleMessages
                curAdditives = self.toggleAdditives
            pageWidget = QWidget(self.menuNotebook)
            page = QVBoxLayout(pageWidget)
            thisLunchMenu = LunchMenu.allLunchMenus()[index]
            if thisLunchMenu != None and type(thisLunchMenu) == LunchMenu:
                title = curMessages[
                    'lunchMenuFor'] + u" " + thisLunchMenu.lunchDate.strftime(
                        curMessages['dateFormatDisplayed']).decode("utf-8")
                self.addMenuLine(pageWidget, title, page, True)
                if thisLunchMenu.isValid():
                    self.addMenuContent(pageWidget,
                                        curMessages['soupDisplayed'],
                                        thisLunchMenu.contents, page,
                                        curMessages, curAdditives)
                    self.addMenuContent(pageWidget,
                                        curMessages['mainDishesDisplayed'],
                                        thisLunchMenu.contents, page,
                                        curMessages, curAdditives)
                    self.addMenuContent(pageWidget,
                                        curMessages['supplementsDisplayed'],
                                        thisLunchMenu.contents, page,
                                        curMessages, curAdditives)
                    self.addMenuContent(pageWidget,
                                        curMessages['dessertsDisplayed'],
                                        thisLunchMenu.contents, page,
                                        curMessages, curAdditives)
                else:
                    self.addMenuLine(pageWidget, curMessages['noLunchToday'],
                                     page)
            elif type(thisLunchMenu) == locale.Error:
                self.addLocaleErrorPage(pageWidget, page, index >= 5)
                pass
            elif isinstance(thisLunchMenu, Exception):
                self.addExceptionPage(pageWidget, page, thisLunchMenu,
                                      index >= 5)

            self.menuNotebook.addWidget(pageWidget)
        try:
            if getPlatform() != PLATFORM_WINDOWS:
                locale.setlocale(locale.LC_TIME,
                                 (LunchMenu.defaultLocaleString, "UTF-8"))
        except:
            log_exception("error setting locale")

        self.goToday()