Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. import sys
  2. sys.path.append("/home/pimaster/www/pibot/")
  3. import u413lib
  4. from pibot_constants import *
  5.  
  6. class module:
  7. #default values
  8. name=""
  9. modtype=""
  10. description=""
  11. version=""
  12. func=0
  13. disabled=False
  14. def enable(self):
  15. if not self.disabled:
  16. return self.name+" "+self.modtype+" is not disabled."
  17. self.disabled=False
  18. return self.name+" "+self.modtype+" is now enabled."
  19. def disable(self):
  20. if self.disabled:
  21. return self.name+" "+self.modtype+" is already disabled."
  22. self.disabled=True
  23. return self.name+" "+self.modtype+" is now disabled."
  24.  
  25. class command(module):
  26. #default values
  27. parameters=""
  28. level=user.basic
  29. modtype="command"
  30. def __init__(self,filename,bot):
  31. mod=__import__(filename)
  32. self.name=mod.name
  33. self.parameters=mod.parameters
  34. self.description=mod.description
  35. self.level=mod.level
  36. self.version=mod.version
  37. self.func=mod.func
  38. try:
  39. init=getattr(mod,"init")
  40. init(bot)
  41. except:
  42. pass
  43. def run(self,bot,text,args):
  44. if self.disabled:
  45. return CK+self.name+' '+self.modtype+" is disabled."
  46. return self.func(bot,text,args)
  47.  
  48. class service(module):
  49. #default values
  50. modtype="service"
  51. def __init__(self,filename,bot):
  52. mod=__import__(filename)
  53. self.name=mod.name
  54. self.description=mod.description
  55. self.version=mod.version
  56. self.infunc=mod.infunc
  57. self.outfunc=mod.outfunc
  58. try:
  59. init=getattr(mod,"init")
  60. init(bot)
  61. except:
  62. pass
  63. def run(self,bot,text,isout):
  64. if self.disable:
  65. return ""
  66. return self.func(bot,text)
  67.  
  68. class mode(module):
  69. #default values
  70. level=user.basic
  71. state=False
  72. modtype="mode"
  73. def on(self):
  74. if self.disabled:
  75. return self.name+" mode is disabled."
  76. if self.state:
  77. return self.name+" mode is already on."
  78. self.state=True
  79. return self.name+" mode is now on."
  80. def off(self):
  81. if self.disabled:
  82. return self.name+" mode is disabled."
  83. if not self.state:
  84. return self.name+" mode is already off."
  85. self.state=False
  86. return self.name+" mode is now off."
  87. def toggle(self):
  88. if self.disabled:
  89. return self.name+" mode is disabled."
  90. if self.state:
  91. self.state=False
  92. return self.name+" mode is now off."
  93. self.state=True
  94. return self.name+" mode is now on."
  95. def __init__(self,filename,bot):
  96. mod=__import__(filename)
  97. self.name=mod.name
  98. self.description=mod.description
  99. self.version=mod.version
  100. self.func=mod.func
  101. self.level=mod.level
  102. try:
  103. init=getattr(mod,"init")
  104. init(bot)
  105. except:
  106. pass
  107. def run(self,bot,text):
  108. return self.func(bot,text)
  109.  
  110. class bot:
  111. dologout=False
  112. username=""
  113. password=""
  114. version=""
  115. description=""
  116. #modules
  117. modes=[]
  118. services=[]
  119. commands=[]
  120. #user data
  121. admins=[]
  122. banned=[]
  123. bots=[]
  124. mods=[]
  125. def __init__(self,username,password,version,description,channel="general"):
  126. self.username=username
  127. self.password=password
  128. self.version=version
  129. self.description=description
  130. self.client=u413lib.createclient()
  131. if not self.client.login(username,password):
  132. print username,password
  133. exit()
  134. self.chat=self.client.joinchat(channel)
  135. self.client.sendRawCommand("channel "+channel)
  136. #load user data
  137. txtfile=open(www+"data/admins.txt","r")
  138. string=txtfile.read()
  139. admins=string.split('\n')
  140. txtfile.close()
  141. txtfile=open(www+"data/mods.txt","r")
  142. string=txtfile.read()
  143. admins=string.split('\n')
  144. txtfile.close()
  145. txtfile=open(www+"data/bots.txt","r")
  146. string=txtfile.read()
  147. bots=string.split('\n')
  148. txtfile.close()
  149. txtfile=open(www+"data/banned.txt","r")
  150. string=txtfile.read()
  151. banned=string.split('\n')
  152. txtfile.close()
  153. def addmode(self,botmode):
  154. self.modes.append(botmode)
  155. def addcmd(self,botcmd):
  156. self.commands.append(botcmd)
  157. def addservice(self,botservice):
  158. self.services.append(botservice)
  159. def logout(self):
  160. self.client.sendRawCommand("logout")
  161. def userlvl(self,username):
  162. if username==host:
  163. return user.host
  164. elif username in self.admins:
  165. return user.admin
  166. elif username in self.mods:
  167. return user.mod
  168. elif username in self.bots:
  169. return user.bot
  170. elif username in self.banned:
  171. return user.ban
  172. else:
  173. return user.basic
  174. def run(self):
  175. chatget=self.chat.get()
  176. if chatget:
  177. for text in chatget:
  178. output=[]
  179. #services
  180. for s in self.services:
  181. output.extend(s.infunc(self,text).split("||"))
  182. #commands
  183. if text["Type"]=="Message":
  184. args=text["Msg"].split(' ')
  185. for c in self.commands:
  186. if CK+c.name==args[0]:
  187. if self.userlvl(text["User"])>=c.level:
  188. output.extend(c.run(self,text,args[1:]).split("||"))
  189. break
  190. #modes
  191. for o in output:
  192. if o=="":
  193. continue
  194. out=o
  195. for m in self.modes:
  196. if not m.disabled and m.state:
  197. out=m.run(self,out)
  198. #run output services on output
  199. for s in self.services:
  200. if not s.disabled:
  201. s.outfunc(self,out)
  202. print out
  203. self.chat.send(out)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement