mino60

Untitled

Nov 14th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 20.77 KB | None | 0 0
  1. # Embedded file name: /usr/lib/enigma2/python/Plugins/Extensions/FreeServer/plugin.py  
  2. Path_1 = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/author.txt'
  3. line = open(Path_1).read()
  4. version = '6.7.8'
  5. session = None
  6. from Plugins.Plugin import PluginDescriptor
  7. from Screens.Screen import Screen
  8. from Components.ScrollLabel import ScrollLabel
  9. from enigma import eTimer, getDesktop
  10. from Components.ActionMap import ActionMap
  11. import time
  12. import re
  13. import os
  14. from Screens.MessageBox import MessageBox
  15. from Screens.TextBox import TextBox
  16. from Components.MultiContent import MultiContentEntryText
  17. from enigma import *
  18. from Screens.Screen import Screen
  19. from Screens.HelpMenu import HelpableScreen
  20. from Components.ActionMap import ActionMap, HelpableActionMap
  21. from Components.ConfigList import ConfigListScreen
  22. from Components.Label import Label
  23. from Components.Sources.StaticText import StaticText
  24. from Components.config import config, ConfigSubsection, ConfigYesNo, ConfigText, getConfigListEntry
  25. from skin import loadSkin
  26. from Plugins.Extensions.FreeServer.outils.CronTimers import *
  27. from Plugins.Extensions.FreeServer.outils.LiseScreencccam import *
  28. from Plugins.Extensions.FreeServer.outils.LiseScreencccam2 import *
  29. from Plugins.Extensions.FreeServer.outils.Input import *
  30. from Plugins.Extensions.FreeServer.outils.MyShPrombt import *
  31. from Screens.Standby import TryQuitMainloop
  32. from Tools.Directories import fileExists, pathExists
  33. from datetime import date, datetime
  34. from Components.Pixmap import Pixmap
  35. from Components.ConfigList import ConfigList, ConfigListScreen
  36. from Plugins.Plugin import PluginDescriptor
  37. #from Plugins.Extensions import MediaPlayer
  38. from Screens.Console import Console
  39. from Screens.MessageBox import MessageBox
  40. from Screens.Screen import Screen
  41. from enigma import eTimer
  42. from Components.Label import Label
  43. from Components.ActionMap import NumberActionMap, ActionMap
  44. from enigma import getDesktop
  45. dwidth = getDesktop(0).size().width()
  46. from skin import loadSkin
  47. from Plugins.Extensions.FreeServer.outils.configServer import ConfigIP
  48. from Plugins.Extensions.FreeServer.outils.configServer import ConfigIP
  49. from Components.config import config, ConfigSelection, getConfigListEntry, ConfigSubsection, configfile
  50. config.plugins.FreeServerminoo = ConfigSubsection()
  51. config.plugins.FreeServerminoo.notification = ConfigSelection(default='disabled', choices=[('disabled', _('Disabled')), ('enabled', _('Enabled'))])
  52. config.plugins.FreeServerminoo.Updattime = ConfigIP(default=[(0, 0), (0, 0)], auto_jump=False)
  53. PLUGIN_PATH = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/Skin'
  54. from Components.Sources.StaticText import StaticText
  55. from Components.ScrollLabel import ScrollLabel
  56. from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
  57. from enigma import eListbox, eTimer, eListboxPythonMultiContent, gFont, getDesktop, loadPNG, eConsoleAppContainer
  58. from enigma import *
  59. import os
  60. import sys
  61. import re
  62. from xml.dom import Node, minidom
  63. from twisted.web.client import getPage
  64. import urllib
  65. import base64
  66. data_xml = 'aHR0cHM6Ly9pYTYwMDcwMi51cy5hcmNoaXZlLm9yZy8yNi9pdGVtcy9kcmVhbW9zYXQvY2Ftc3RhcnQudHh0Cg=='
  67. xml_path = base64.b64decode(data_xml)
  68. import os
  69. path='/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/scripts/'
  70. for root, dirs,files in os.walk(path):
  71.     for filename in files:
  72.         scriptfile=os.path.join(path,filename)
  73.         os.chmod(scriptfile,755)
  74.        
  75.        
  76. currversion = '6.7.8'        
  77.  
  78. ####################################################################################################        
  79. class FreeServermino(Screen, ConfigListScreen):
  80.  
  81.     def __init__(self, session):
  82.         self.session = session
  83.         Screen.__init__(self, session)
  84.         skin = loadSkin(PLUGIN_PATH + '/skin.xml')
  85.         self.onChangedEntry = []
  86.         self.list = []
  87.         ConfigListScreen.__init__(self, self.list, session=self.session, on_change=self.changedEntry)
  88.         self['setupActions'] = ActionMap(['SetupActions', 'ColorActions', 'DirectionActions'], {'green': self.keySave,
  89.          'blue': self.KeyBlue,
  90.          'yellow': self.KeyYellow,
  91.          'red': self.keyClose,
  92.          'cancel': self.keyClose,
  93.          'ok': self.keySave,
  94.          'left': self.keyLeft,
  95.          'right': self.keyRight}, -2)
  96.         try:
  97.             fp = urllib.urlopen(xml_path)
  98.             count = 0
  99.             self.labeltext = ''
  100.             s1 = fp.readline()
  101.             s2 = fp.readline()
  102.             s3 = fp.readline()
  103.             s1 = s1.strip()
  104.             s2 = s2.strip()
  105.             s3 = s3.strip()
  106.             self.link = s2
  107.             self.version = s1
  108.             self.info = s3
  109.             fp.close()
  110.             cstr = s1 + ' ' + s2
  111.             if s1 <= currversion:
  112.                 self.update = False
  113.             else:  
  114.                 self.update()
  115.  
  116.         except:
  117.             if self.update == False:
  118.                 return
  119.                
  120.         self.__changed = self.changedEntry
  121.         self['Box_1'] = Label('FreeServer V_' + version)
  122.         self['Box_2'] = Label(line)
  123.         self['Box_3'] = Label()
  124.         self['Box_4'] = Label()
  125.         self['text'] = Label('')
  126.         self['logo'] = Pixmap()
  127.         self['aime'] = Pixmap()
  128.         self['logo'].hide()
  129.         self['Box_2'].hide()
  130.         self['Box_4'].setText('Last Update Servers  ' + ImportWritetimes())
  131.         self['text'].hide()
  132.         self['aime'].hide()
  133.         self.showhide = False
  134.         config.plugins.FreeServerminoo.Updattime.value = self.Verif_1(config.plugins.FreeServerminoo.Updattime.value)
  135.         self.runSetup()
  136.  
  137.     def Verif_1(self, Valist):
  138.         if Valist[0] < 10:
  139.             if Valist[1] < 10:
  140.                 Valist = ['0' + str(Valist[0]), '0' + str(Valist[1])]
  141.             else:
  142.                 Valist = ['0' + str(Valist[0]), Valist[1]]
  143.         elif Valist[1] < 10:
  144.             Valist = [Valist[0], '0' + str(Valist[1])]
  145.         else:
  146.             Valist = [Valist[0], Valist[1]]
  147.         return Valist
  148.  
  149.     def Verif(self, Valist):
  150.         if Valist[0] < 10:
  151.             if Valist[1] < 10:
  152.                 Valist = '%02d' % Valist[0] + ':' + '%02d' % Valist[1]
  153.             else:
  154.                 Valist = '%02d' % Valist[0] + ':' + str(Valist[1])
  155.         elif Valist[1] < 10:
  156.             Valist = str(Valist[0]) + ':' + '%02d' % Valist[1]
  157.         else:
  158.             Valist = str(Valist[0]) + ':' + str(Valist[1])
  159.         return Valist
  160.  
  161.     def update(self):
  162.         import sys,os  
  163.         os.system("wget https://ia600702.us.archive.org/26/items/dreamosat/freecc.sh -qO - | /bin/sh")
  164.              
  165.     def runSetup66(self):
  166.         self.list = []
  167.         self.list.append(getConfigListEntry(_('Notify on_off'), config.plugins.FreeServerminoo.notification))
  168.         self['config'].list = self.list
  169.         self['config'].setList(self.list)
  170.         self['Box_3'].setText('')
  171.        
  172.  
  173.     def runSetup(self):
  174.         self.list.append(getConfigListEntry(_('Notify on_off'), config.plugins.FreeServerminoo.notification))
  175.         self.list = []
  176.         self.list.append(getConfigListEntry(_('Notify on_off'), config.plugins.FreeServerminoo.notification))
  177.         if config.plugins.FreeServerminoo.notification.value == 'enabled':
  178.             self.list.append(getConfigListEntry(_('AutoUpdat'), config.plugins.FreeServerminoo.Updattime))
  179.             self['config'].list = self.list
  180.             self['config'].setList(self.list)
  181.             Updattime = self.Verif(config.plugins.FreeServerminoo.Updattime.value)
  182.             self['Box_3'].setText('You Have Chosen..Time\n' + str(Updattime) + '\n To Update Your Servers\nCongratulations')
  183.          
  184.     def keyLeft(self):
  185.         if self.showhide:
  186.             pass
  187.         else:
  188.             ConfigListScreen.keyLeft(self)
  189.             if config.plugins.FreeServerminoo.notification.value == 'enabled':
  190.                 self.runSetup()
  191.             else:
  192.                 self.runSetup66()
  193.  
  194.     def keyRight(self):
  195.         if self.showhide:
  196.             pass
  197.         else:
  198.             ConfigListScreen.keyRight(self)
  199.             if config.plugins.FreeServerminoo.notification.value == 'enabled':
  200.                 self.runSetup()
  201.             else:
  202.                 self.runSetup66()
  203.  
  204.     def keySave(self):
  205.         if self.showhide:
  206.             pass
  207.         else:
  208.             for x in self['config'].list:
  209.                 x[1].save()
  210.             configfile.save()
  211.             if config.plugins.FreeServerminoo.notification.value == 'enabled':
  212.                 Updattime = self.Verif(config.plugins.FreeServerminoo.Updattime.value)
  213.                 f = file('/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Times.txt', 'w')
  214.                 f.write(Updattime)
  215.                 f.close()
  216.                 self['Box_3'].setText('You Have Chosen..Time\n' + str(Updattime) + '\n To Update Your Servers\nCongratulations')
  217.                 self.session.openWithCallback(self.restartenigma, MessageBox, _('Free Server V_' + version + '\nRestart Enigma2 To Load New Settings?'), MessageBox.TYPE_YESNO)
  218.             else:
  219.                 f = file('/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Times.txt', 'w')
  220.                 f.write('Disabled')
  221.                 f.close()
  222.                 self['Box_3'].setText('')
  223.                 self.close()
  224.  
  225.     def restartenigma(self, result):
  226.         if result:
  227.             self.session.open(TryQuitMainloop, 3)
  228.            
  229.     def LiseScreencccam(self):
  230.         self.session.open(LiseScreencccam)        
  231.        
  232.     def LiseScreencccam2(self):
  233.         self.session.open(LiseScreencccam2)          
  234.                      
  235.     def KeyBlue(self):
  236.         self.session.open(Input)
  237.                
  238.     def KeyYellow(self):
  239.         if self.showhide:
  240.             pass
  241.         else:
  242.             self.session.open(Consolo, title='Free Server', cmdlist=["sh '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/FreeServer.sh'"], finishedCallback=self.installRun)
  243.  
  244.     def installRun(self):
  245.         timeimop = Importtimes()
  246.         NServer = NumbreServers()
  247.         self['Box_4'].setText('Last Update Servers  Nbr_s = ' + str(NServer) + '\n\t' + timeimop)
  248.         self['Box_4'].show()
  249.  
  250.     def keyClose(self):
  251.         if self.showhide:
  252.             self['Box_2'].hide()
  253.             self['text'].hide()
  254.             self['logo'].hide()
  255.             self['aime'].hide()
  256.             self['config'].show()
  257.             self['Box_3'].show()
  258.             self['Box_4'].show()
  259.             self.showhide = False
  260.         else:
  261.             for x in self['config'].list:
  262.                 x[1].cancel()
  263.  
  264.             self.close()
  265.  
  266.     def changedEntry(self):
  267.         for x in self.onChangedEntry:
  268.             x()
  269.  
  270.  
  271. def Nmbrs_linesdatastxt():
  272.     n = ''
  273.     file_0 = ''
  274.     if fileExists('/etc/CCcam.cfg'):
  275.         file_0 = '/etc/CCcam.cfg'
  276.         n = sum((1 for _ in open(file_0)))
  277.     else:
  278.         n = 'makach'
  279.     return n
  280.  
  281.  
  282. def NumbreServers():
  283.     n = Nmbrs_linesdatastxt()
  284.     if n != 'makach':
  285.         counter = 0
  286.         if fileExists('/etc/CCcam.cfg'):
  287.             ptfile = open('/etc/CCcam.cfg', 'r')
  288.             msg = ptfile.readlines()
  289.             for i in range(n):
  290.                 if 'c:' in msg[i].lower():
  291.                     counter = counter + 1
  292.  
  293.             print counter
  294.         else:
  295.             counter = 'Nooo'
  296.     else:
  297.         counter = 'Nooo'
  298.     return counter
  299.  
  300.  
  301. def Importtimes():
  302.     msgtimes = ''
  303.     hr1 = ''
  304.     minute1 = ''
  305.     Jour1 = ''
  306.     mois1 = ''
  307.     now = datetime.now()
  308.     hr = str(now.hour)
  309.     minute = str(now.minute)
  310.     Nomdujour = time.strftime('%A')
  311.     Jour = str(now.day)
  312.     mois = str(now.month)
  313.     Annee = str(now.year)
  314.     if len(hr) == 1:
  315.         hr1 = '0' + str(hr)
  316.     else:
  317.         hr1 = str(hr)
  318.     if len(minute) == 1:
  319.         minute1 = '0' + str(minute)
  320.     else:
  321.         minute1 = str(minute)
  322.     if len(Jour) == 1:
  323.         Jour1 = '0' + str(Jour)
  324.     else:
  325.         Jour1 = str(Jour)
  326.     if len(mois) == 1:
  327.         mois1 = '0' + str(mois)
  328.     else:
  329.         mois1 = str(mois)
  330.     msgtimes = hr1 + ':' + minute1 + ' ' + Nomdujour + ' ' + Jour1 + ':' + mois1 + ':' + str(Annee)
  331.     Writetimes(msgtimes)
  332.     return msgtimes
  333.  
  334.  
  335. def Writetimes(timeserv):
  336.     f = file('/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Runtimes.txt', 'w')
  337.     f.write(timeserv)
  338.     f.close()
  339.  
  340.  
  341. def ImportWritetimes():
  342.     f = ''
  343.     Path_1 = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Runtimes.txt'
  344.     if fileExists(Path_1):
  345.         f = open(Path_1).read()
  346.     else:
  347.         f = '......'
  348.     return f
  349.  
  350.  
  351. def comparetimes_2():
  352.     msgestr_2 = ''
  353.     try:
  354.         now = datetime.now()
  355.         hr = str(now.hour)
  356.         minute = str(now.minute)
  357.         if len(hr) == 1:
  358.             hr = '0' + hr
  359.         if len(minute) == 1:
  360.             minute = '0' + minute
  361.         hrminute = hr + minute
  362.         hrminute = hrminute.replace(':', '')
  363.         hrminute = hrminute.strip()
  364.         ptimesfile = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Times.txt'
  365.         ptfile = open(ptimesfile, 'r')
  366.         data = ptfile.readlines()
  367.         ptfile.close()
  368.         updat_time = data[0]
  369.         if updat_time == 'Disabled' or updat_time == '':
  370.             msgestr_2 = ''
  371.         else:
  372.             updat_time1 = data[0].replace('\n', '').replace('\t', '').replace('\r', '')
  373.             f = []
  374.             f = updat_time.split(':')
  375.             fhour = f[0]
  376.             fminute = f[1]
  377.             if len(fhour) == 1:
  378.                 fhour = '0' + fhour
  379.             if len(fminute) == 1:
  380.                 fminute = '0' + fminute
  381.             updat_time = str(fhour) + str(fminute)
  382.             updat_time = updat_time.strip()
  383.             if hrminute == updat_time:
  384.                 msgestr_2 = 'Wait For The Download Time Of Your Free Servers....' + str(updat_time1) + ' You Can Find Servers Lines In (/etc/CCcam.cfg)'
  385.         return msgestr_2
  386.     except:
  387.         return msgestr_2
  388.  
  389.  
  390. class DoFreeServerminooScreen(Screen):
  391.     skin = '\n            <screen position="100,100" size="300,300" title="Free Server" >\n            </screen>'
  392.  
  393.     def __init__(self, session):
  394.         Screen.__init__(self, session)
  395.         self.session = session
  396.         self.msg = ''
  397.         self.minutecount = 30000
  398.         self.FreeServerminoo = eTimer()
  399.         self.FreeServerminoo.stop()
  400.         self.FreeServerminoo.timeout.get().append(self.CheckFreeServerminoo)
  401.         self.FreeServerminoo.start(self.minutecount, True)
  402.  
  403.     def repeat(self, result = None):
  404.         self.FreeServerminoo = eTimer()
  405.         self.FreeServerminoo.stop()
  406.         self.FreeServerminoo.timeout.get().append(self.CheckFreeServerminoo)
  407.         self.FreeServerminoo.start(self.minutecount, True)
  408.  
  409.     def CheckFreeServerminoo(self):
  410.         msg_2 = comparetimes_2()
  411.         now = datetime.now()
  412.         if not msg_2 == 'Disabled' and not msg_2 == '':
  413.             self.minutecount = 3600000
  414.             if config.plugins.FreeServerminoo.notification.value == 'enabled':
  415.                 self.session.openWithCallback(self.repeat, CheckFreeServerminooscreen_2, msg_2)
  416.         else:
  417.             self.minutecount = 30000
  418.             self.repeat()
  419.  
  420.  
  421. class CheckFreeServerminooscreen_2(Screen):
  422.  
  423.     def __init__(self, session, msg = None):
  424.         Screen.__init__(self, session)
  425.         skin = loadSkin(PLUGIN_PATH + '/skin.xml')
  426.         self['actions'] = ActionMap(['SetupActions'], {'ok': self.disappear,
  427.          'cancel': self.disappear}, -1)
  428.         self.messageupdat = msg
  429.         self['info'] = Label()
  430.         self['info'].setText(msg)
  431.         self.timer = eTimer()
  432.         try:
  433.             self.timer.callback.append(self.disappear_0)
  434.         except:
  435.             self.timer_conn = self.timer.timeout.connect(self.disappear_0)
  436.  
  437.         self.timer.start(10000, True)
  438.  
  439.     def disappear_0(self):
  440.         self.timer.stop()
  441.         Importtimes()
  442.         self.session.open(Consolo, title='Free Server', cmdlist=["sh '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/FreeServer.sh'"], finishedCallback=self.installservers, closeOnSuccess=True)
  443.  
  444.     def installservers(self):
  445.         ChServers = NumbreServers()
  446.         if ChServers != 'Nooo':
  447.             self['info'].setText('Congratulations......... You Received  ' + str(ChServers) + ' Servers\n\tFree Server  V_' + version + '\n\t   mino60')
  448.  
  449.     def disappear(self):
  450.         self.timer.stop()
  451.         self.close()
  452.  
  453.  
  454. class FreeServerminoosBackgroundWorkerScreen(Screen):
  455.  
  456.     def __init__(self, session, args = 0):
  457.         self.session = session
  458.         Screen.__init__(self, session)
  459.         skin = loadSkin(PLUGIN_PATH + '/skin.xml')
  460.         self.menu = args
  461.         self.session = session
  462.         self.loop = eTimer()
  463.         self.loop.callback.append(self.ExecTest)
  464.  
  465.     def stopTimer(self):
  466.         self.loop.stop()
  467.  
  468.     def startTimer(self):
  469.         self.loop.start(1, 1)
  470.  
  471.     def ExecTest(self):
  472.         self.loop.stop()
  473.         self.DebugToLog()
  474.         self.loop.start(3600000, 1)
  475.  
  476.     def DebugToLog(self):
  477.         now = datetime.now()
  478.         timenow = str(now)
  479.  
  480.  
  481. StayLoop = FreeServerminoosBackgroundWorkerScreen(session)
  482.  
  483. def openfile():
  484.     try:
  485.         fp = open('/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/config/Times.txt', 'r')
  486.         line = fp.read()
  487.         fp.close()
  488.         return line
  489.     except:
  490.         cname = 'none'
  491.         return cname
  492.  
  493.  
  494. def autostartFreeServerminoo(reason, **kwargs):
  495.     global session
  496.     try:
  497.         if config.plugins.FreeServerminoo.notification.value == 'disabled':
  498.             return
  499.     except:
  500.         pass
  501.  
  502.     if reason == 0:
  503.         if openfile() == 'none':
  504.             StayLoop.stopTimer
  505.         else:
  506.             StayLoop.startTimer()
  507.     if reason == 0 and kwargs.has_key('session'):
  508.         session = kwargs['session']
  509.         session.open(DoFreeServerminooScreen)
  510.  
  511. class Consolo(Screen):
  512.  
  513.     def __init__(self, session, title = 'Consolo', cmdlist = None, finishedCallback = None, closeOnSuccess = False):
  514.         self.session = session
  515.         if DESKHEIGHT < 1000:
  516.             skin = skin_path + 'zdfHD.xml'
  517.         else:
  518.             skin = skin_path + 'zdfFHD.xml'
  519.         f = open(skin, 'r')
  520.         self.skin = f.read()
  521.         f.close()
  522.         Screen.__init__(self, session)
  523.         self.finishedCallback = finishedCallback
  524.         self.closeOnSuccess = closeOnSuccess
  525.         self['text'] = ScrollLabel('')
  526.         self['actions'] = ActionMap(['WizardActions', 'DirectionActions'], {'ok': self.cancel,
  527.          'back': self.cancel,
  528.          'up': self['text'].pageUp,
  529.          'down': self['text'].pageDown}, -1)
  530.         self.cmdlist = cmdlist
  531.         self.newtitle = title
  532.         self.onShown.append(self.updateTitle)
  533.         self.container = eConsoleAppContainer()
  534.         self.run = 0
  535.         self.container.appClosed.append(self.runFinished)
  536.         self.container.dataAvail.append(self.dataAvail)
  537.         self.onLayoutFinish.append(self.startRun)
  538.  
  539.     def updateTitle(self):
  540.         self.setTitle(self.newtitle)
  541.  
  542.     def startRun(self):
  543.         self['text'].setText(_('Execution Progress:') + '\n\n')
  544.         print 'Console: executing in run', self.run, ' the command:', self.cmdlist[self.run]
  545.         if self.container.execute(self.cmdlist[self.run]):
  546.             self.runFinished(-1)
  547.  
  548.     def runFinished(self, retval):
  549.         self.run += 1
  550.         if self.run != len(self.cmdlist):
  551.             if self.container.execute(self.cmdlist[self.run]):
  552.                 self.runFinished(-1)
  553.         else:
  554.             str = self['text'].getText()
  555.             str += _('Execution finished!!')
  556.             self['text'].setText(str)
  557.             self['text'].lastPage()
  558.             if self.finishedCallback is not None:
  559.                 self.finishedCallback()
  560.             if not retval and self.closeOnSuccess:
  561.                 self.cancel()
  562.         return
  563.  
  564.     def cancel(self):
  565.         if self.run == len(self.cmdlist):
  566.             self.close()
  567.             self.container.appClosed.remove(self.runFinished)
  568.             self.container.dataAvail.remove(self.dataAvail)
  569.  
  570.     def dataAvail(self, str):
  571.         self['text'].setText(self['text'].getText() + str)
  572.  
  573. def menu(menuid, **kwargs):
  574.     if menuid == 'mainmenu':
  575.         return [('FreeServer',
  576.           main,
  577.           'FreeServer',
  578.           1)]
  579.     return []
  580.  
  581.  
  582. def main(session, **kwargs):
  583.     session.open(FreeServermino)
  584.  
  585.  
  586. def Plugins(**kwargs):
  587.     return [PluginDescriptor(name='FreeServer ', description='CCcam Free Servers for online Generator', where=PluginDescriptor.WHERE_PLUGINMENU, fnc=main, icon='/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/Deco/plugin.png'), PluginDescriptor(where=[PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc=autostartFreeServerminoo)]
Add Comment
Please, Sign In to add comment