fork(5) download
  1. # -*- coding: utf-8 -*-
  2. import wx
  3. import wx.lib.agw.gradientbutton as gbtn
  4. import urllib2, urllib
  5. from urllib2 import HTTPError, URLError
  6. import threading
  7. import time
  8. import cookielib
  9. import sys
  10. import webbrowser
  11.  
  12. class LoginComunio:
  13. def __init__(self,user,password,threads,url_base,cookie):
  14. #Inicializamos variables
  15. self.user = user
  16. self.password = password
  17. self.num_threads = threads
  18. self.url_base = url_base
  19. self.cookies = None
  20. self.ua = 'Yo no pago muahahahahah'
  21. self.run = False
  22. self.exito = False
  23. self.lista_threads = []
  24. self.intento = 0
  25. #Instalamos manejador de cookies
  26. self.cookie_j = cookielib.LWPCookieJar()
  27. ck = cookielib.Cookie(version=0, name='PHPSESSID',value=cookie,port=None,port_specified=False,domain=url_base,domain_specified=False, domain_initial_dot=False,path='/',path_specified=True,secure=False,expires=None,discard=True,comment=None,comment_url=None,rest={'HttpOnly':None},rfc2109=False)
  28. self.cookie_j.set_cookie(ck)
  29. cookie_h = urllib2.HTTPCookieProcessor(self.cookie_j)
  30. opener = urllib2.build_opener(cookie_h)
  31. urllib2.install_opener(opener)
  32.  
  33. def Activar(self):
  34. self.intento = 0
  35. self.run = True
  36. for i in range(self.num_threads):
  37. t = threading.Thread(target=self.Login)
  38. self.lista_threads.append(t)
  39. t.start()
  40.  
  41. def Desactivar(self):
  42. self.run = False
  43.  
  44. def ThreadsFinalizados(self):
  45. for t in self.lista_threads:
  46. if t.isAlive() == True: return False
  47. return True
  48.  
  49. def Login(self):
  50. lock = threading.Lock()
  51. url_login = 'http://'+self.url_base+'/login.phtml'
  52. postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
  53. while self.run:
  54. try:
  55. request = urllib2.Request(url_login,headers={'User-Agent':self.ua})
  56. fichero = urllib2.urlopen(request,postdata)
  57. if fichero.geturl() != url_login:
  58. lock.acquire()
  59. self.Desactivar()
  60. self.exito = True
  61. lock.release()
  62. else:
  63. lock.acquire()
  64. self.intento = self.intento + 1
  65. lock.release()
  66. except HTTPError, e:
  67. None
  68. except URLError, e:
  69. None
  70.  
  71. TIMER_ID = wx.NewId()
  72.  
  73. class MyApp(wx.App):
  74. def OnInit(self):
  75. self.frame = MainFrame(None,title="COMUNEITOR v0.1",size=(380,300))
  76. self.SetTopWindow(self.frame)
  77. self.frame.Show()
  78. return True
  79.  
  80. class MainFrame(wx.Frame):
  81. def __init__(self, *args, **kwargs):
  82. super(MainFrame, self).__init__(*args, **kwargs)
  83. #Atributos
  84. self.panel_principal = MainPanel(self)
  85. self.CreateStatusBar()
  86. #Layout
  87. sizer = wx.BoxSizer(wx.HORIZONTAL)
  88. sizer.Add(self.panel_principal,1,wx.EXPAND)
  89. self.SetSizer(sizer)
  90.  
  91.  
  92. class MainPanel(wx.Panel):
  93. def __init__(self,parent):
  94. super(MainPanel, self).__init__(parent)
  95. self.cookie = None
  96. #Atributos
  97. self._BarraHerramientas()
  98. self.servidor = wx.StaticText(self,label='Servidor')
  99. self.servidor_input = wx.Choice(self,choices=['www.comunio.es','www14.comunio.es'])
  100. self.servidor_input.SetSelection(0)
  101. self.user = wx.StaticText(self,label='Usuario')
  102. self.user_input = wx.TextCtrl(self,size=(150,25))
  103. self.password = wx.StaticText(self,label='Password')
  104. self.password_input = wx.TextCtrl(self,size=(150,25),style=wx.TE_PASSWORD)
  105. self.cookie = wx.StaticText(self,label='Cookie')
  106. self.cookie_input = wx.TextCtrl(self,size=(280,25))
  107. #Layout
  108. button_sizer = wx.BoxSizer(wx.HORIZONTAL)
  109. button_sizer.Add(self.lista_herramientas[0],0,wx.LEFT,50)
  110. button_sizer.Add(self.lista_herramientas[1],0,wx.LEFT,10)
  111. servidor_sizer = wx.BoxSizer(wx.HORIZONTAL)
  112. servidor_sizer.Add(self.servidor,0,wx.LEFT,7)
  113. servidor_sizer.Add(self.servidor_input,0,wx.LEFT,7)
  114. user_sizer = wx.BoxSizer(wx.HORIZONTAL)
  115. user_sizer.Add(self.user,0,wx.LEFT,7)
  116. user_sizer.Add(self.user_input,0,wx.LEFT,17)
  117. password_sizer = wx.BoxSizer(wx.HORIZONTAL)
  118. password_sizer.Add(self.password,0,wx.LEFT,7)
  119. password_sizer.Add(self.password_input,0,wx.LEFT,7)
  120. cookie_sizer = wx.BoxSizer(wx.HORIZONTAL)
  121. cookie_sizer.Add(self.cookie,0,wx.LEFT,7)
  122. cookie_sizer.Add(self.cookie_input,0,wx.LEFT,21)
  123. vsizer = wx.BoxSizer(wx.VERTICAL)
  124. vsizer.Add(button_sizer,0,wx.TOP,7)
  125. vsizer.Add(servidor_sizer,1,wx.TOP,7)
  126. vsizer.Add(user_sizer,1,wx.TOP,0)
  127. vsizer.Add(password_sizer,1,wx.TOP,0)
  128. vsizer.Add(cookie_sizer,1,wx.TOP,0)
  129. self.SetSizer(vsizer)
  130. #Eventos
  131. self.Bind(wx.EVT_BUTTON,self.Activar,self.lista_herramientas[0])
  132. self.Bind(wx.EVT_BUTTON,self.Desactivar,self.lista_herramientas[1])
  133. wx.EVT_TIMER(self,TIMER_ID,self.ActualizarStatus)
  134. self.timer = wx.Timer(self,TIMER_ID)
  135. f = open('cookie.txt', 'r+')
  136. cookie_fichero = f.readline().replace('\n','')
  137. self.cookie_input.SetValue(cookie_fichero)
  138. f.close()
  139.  
  140. def _BarraHerramientas(self):
  141. self.lista_herramientas = []
  142. bmp = wx.Bitmap('./activar.png',wx.BITMAP_TYPE_PNG)
  143. boton = gbtn.GradientButton(self,label='Activar',bitmap=bmp)
  144. boton.SetToolTipString('Activar')
  145. self.lista_herramientas.append(boton)
  146. bmp = wx.Bitmap('./desactivar.png',wx.BITMAP_TYPE_PNG)
  147. boton = gbtn.GradientButton(self,label='Desactivar',bitmap=bmp)
  148. boton.SetToolTipString('Desactivar')
  149. self.lista_herramientas.append(boton)
  150.  
  151. def ActualizarStatus(self,event):
  152. padre = self.GetParent()
  153. if self.lc.exito == True:
  154. self.timer.Stop()
  155. servidor = ''
  156. eleccion = self.servidor_input.GetCurrentSelection()
  157. if eleccion == 0: servidor = 'http://w...content-available-to-author-only...o.es/team_news.phtml'
  158. elif eleccion == 1: servidor = 'http://w...content-available-to-author-only...o.es/team_news.phtml'
  159. padre.PushStatusText('Logueados despues de '+str(self.lc.intento)+' intentos. Cookie disponible')
  160. webbrowser.open(servidor)
  161. else:
  162. padre.PushStatusText(str(self.lc.intento)+' intentos fallidos')
  163.  
  164. def Activar(self,event):
  165. cookie_entrada = str(self.cookie_input.GetValue())
  166. f_read = open('cookie.txt','r+')
  167. cookie_fichero = f_read.readline().replace('\n','')
  168. f_read.close()
  169. f_write = open('cookie.txt','r+')
  170. if cookie_entrada != '':
  171. f_write.write(cookie_entrada)
  172. self.cookie = cookie_entrada
  173. else:
  174. self.cookie = cookie_fichero
  175. f_write.close()
  176. t = threading.Thread(target=self.ActivarThread)
  177. t.start()
  178. self.timer.Start(300)
  179.  
  180. def ActivarThread(self):
  181. servidor = ''
  182. eleccion = self.servidor_input.GetCurrentSelection()
  183. if eleccion == 0: servidor = 'www.comunio.es'
  184. elif eleccion == 1: servidor = 'www14.comunio.es'
  185. self.lc = LoginComunio(str(self.user_input.GetValue()),str(self.password_input.GetValue()),10,servidor,self.cookie)
  186. self.lc.Activar()
  187.  
  188. def Desactivar(self,event):
  189. self.lc.Desactivar()
  190. self.timer.Stop()
  191.  
  192. if __name__ == "__main__":
  193. app = MyApp(False)
  194. app.MainLoop()
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: \35
# -*- coding: utf-8 -*-
^
Main.java:1: error: class, interface, or enum expected
# -*- coding: utf-8 -*-
   ^
Main.java:2: error: '.' expected
import wx
         ^
Main.java:3: error: ';' expected
import wx.lib.agw.gradientbutton as gbtn
      ^
Main.java:3: error: class, interface, or enum expected
import wx.lib.agw.gradientbutton as gbtn
         ^
Main.java:3: error: class, interface, or enum expected
import wx.lib.agw.gradientbutton as gbtn
          ^
Main.java:4: error: '.' expected
import urllib2, urllib
              ^
Main.java:4: error: ';' expected
import urllib2, urllib
               ^
Main.java:5: error: class, interface, or enum expected
from urllib2 import HTTPError, URLError
^
Main.java:5: error: '.' expected
from urllib2 import HTTPError, URLError
                             ^
Main.java:5: error: ';' expected
from urllib2 import HTTPError, URLError
                              ^
Main.java:6: error: '.' expected
import threading
                ^
Main.java:7: error: ';' expected
import time
      ^
Main.java:8: error: '.' expected
import cookielib
                ^
Main.java:9: error: ';' expected
import sys
      ^
Main.java:10: error: '.' expected
import webbrowser
                 ^
Main.java:12: error: ';' expected
class LoginComunio:
     ^
Main.java:12: error: class, interface, or enum expected
class LoginComunio:
                  ^
Main.java:13: error: class, interface, or enum expected
	def __init__(self,user,password,threads,url_base,cookie):
	^
Main.java:14: error: illegal character: \35
		#Inicializamos variables
		^
Main.java:20: error: unclosed character literal
		self.ua = 'Yo no pago muahahahahah'
		          ^
Main.java:20: error: illegal line end in character literal
		self.ua = 'Yo no pago muahahahahah'
		                                  ^
Main.java:25: error: illegal character: \35
		#Instalamos manejador de cookies
		^
Main.java:27: error: unclosed character literal
                ck = cookielib.Cookie(version=0, name='PHPSESSID',value=cookie,port=None,port_specified=False,domain=url_base,domain_specified=False, domain_initial_dot=False,path='/',path_specified=True,secure=False,expires=None,discard=True,comment=None,comment_url=None,rest={'HttpOnly':None},rfc2109=False)
                                                      ^
Main.java:27: error: unclosed character literal
                ck = cookielib.Cookie(version=0, name='PHPSESSID',value=cookie,port=None,port_specified=False,domain=url_base,domain_specified=False, domain_initial_dot=False,path='/',path_specified=True,secure=False,expires=None,discard=True,comment=None,comment_url=None,rest={'HttpOnly':None},rfc2109=False)
                                                                ^
Main.java:27: error: unclosed character literal
                ck = cookielib.Cookie(version=0, name='PHPSESSID',value=cookie,port=None,port_specified=False,domain=url_base,domain_specified=False, domain_initial_dot=False,path='/',path_specified=True,secure=False,expires=None,discard=True,comment=None,comment_url=None,rest={'HttpOnly':None},rfc2109=False)
                                                                                                                                                                                                                                                                                       ^
Main.java:27: error: unclosed character literal
                ck = cookielib.Cookie(version=0, name='PHPSESSID',value=cookie,port=None,port_specified=False,domain=url_base,domain_specified=False, domain_initial_dot=False,path='/',path_specified=True,secure=False,expires=None,discard=True,comment=None,comment_url=None,rest={'HttpOnly':None},rfc2109=False)
                                                                                                                                                                                                                                                                                                ^
Main.java:51: error: unclosed character literal
		url_login = 'http://'+self.url_base+'/login.phtml'
		            ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                             ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                                   ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                                               ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                                                    ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                                                                    ^
Main.java:52: error: unclosed character literal
		postdata = urllib.urlencode({'login':self.user,'pass':self.password,'action':'login','>>Login_x':'33'})
		                                                                                                    ^
Main.java:55: error: unclosed character literal
				request = urllib2.Request(url_login,headers={'User-Agent':self.ua})
				                                             ^
Main.java:55: error: unclosed character literal
				request = urllib2.Request(url_login,headers={'User-Agent':self.ua})
				                                                        ^
Main.java:73: error: '{' expected
class MyApp(wx.App):
           ^
Main.java:80: error: '{' expected
class MainFrame(wx.Frame):
               ^
Main.java:83: error: illegal character: \35
		#Atributos
		^
Main.java:86: error: illegal character: \35
		#Layout
		^
Main.java:92: error: '{' expected
class MainPanel(wx.Panel):
               ^
Main.java:96: error: illegal character: \35
                #Atributos
                ^
Main.java:98: error: unclosed character literal
		self.servidor = wx.StaticText(self,label='Servidor')
		                                         ^
Main.java:98: error: unclosed character literal
		self.servidor = wx.StaticText(self,label='Servidor')
		                                                  ^
Main.java:99: error: unclosed character literal
		self.servidor_input = wx.Choice(self,choices=['www.comunio.es','www14.comunio.es'])
		                                              ^
Main.java:99: error: unclosed character literal
		self.servidor_input = wx.Choice(self,choices=['www.comunio.es','www14.comunio.es'])
		                                                                                ^
Main.java:101: error: unclosed character literal
		self.user = wx.StaticText(self,label='Usuario')
		                                     ^
Main.java:101: error: unclosed character literal
		self.user = wx.StaticText(self,label='Usuario')
		                                             ^
Main.java:103: error: unclosed character literal
		self.password = wx.StaticText(self,label='Password')
		                                         ^
Main.java:103: error: unclosed character literal
		self.password = wx.StaticText(self,label='Password')
		                                                  ^
Main.java:105: error: unclosed character literal
		self.cookie = wx.StaticText(self,label='Cookie')
		                                       ^
Main.java:105: error: unclosed character literal
		self.cookie = wx.StaticText(self,label='Cookie')
		                                              ^
Main.java:107: error: illegal character: \35
		#Layout
		^
Main.java:130: error: illegal character: \35
		#Eventos
		^
Main.java:135: error: unclosed character literal
		f = open('cookie.txt', 'r+')
		         ^
Main.java:135: error: unclosed character literal
		f = open('cookie.txt', 'r+')
		                    ^
Main.java:135: error: unclosed character literal
		f = open('cookie.txt', 'r+')
		                       ^
Main.java:135: error: unclosed character literal
		f = open('cookie.txt', 'r+')
		                          ^
Main.java:136: error: empty character literal
                cookie_fichero = f.readline().replace('\n','')
                                                           ^
Main.java:136: error: unclosed character literal
                cookie_fichero = f.readline().replace('\n','')
                                                            ^
Main.java:142: error: unclosed character literal
		bmp = wx.Bitmap('./activar.png',wx.BITMAP_TYPE_PNG)
		                ^
Main.java:142: error: unclosed character literal
		bmp = wx.Bitmap('./activar.png',wx.BITMAP_TYPE_PNG)
		                              ^
Main.java:143: error: unclosed character literal
		boton = gbtn.GradientButton(self,label='Activar',bitmap=bmp)
		                                       ^
Main.java:143: error: unclosed character literal
		boton = gbtn.GradientButton(self,label='Activar',bitmap=bmp)
		                                               ^
Main.java:144: error: unclosed character literal
		boton.SetToolTipString('Activar')
		                       ^
Main.java:144: error: unclosed character literal
		boton.SetToolTipString('Activar')
		                               ^
Main.java:146: error: unclosed character literal
		bmp = wx.Bitmap('./desactivar.png',wx.BITMAP_TYPE_PNG)
		                ^
Main.java:146: error: unclosed character literal
		bmp = wx.Bitmap('./desactivar.png',wx.BITMAP_TYPE_PNG)
		                                 ^
Main.java:147: error: unclosed character literal
		boton = gbtn.GradientButton(self,label='Desactivar',bitmap=bmp)
		                                       ^
Main.java:147: error: unclosed character literal
		boton = gbtn.GradientButton(self,label='Desactivar',bitmap=bmp)
		                                                  ^
Main.java:148: error: unclosed character literal
		boton.SetToolTipString('Desactivar')
		                       ^
Main.java:148: error: unclosed character literal
		boton.SetToolTipString('Desactivar')
		                                  ^
Main.java:155: error: empty character literal
                        servidor = ''
                                   ^
Main.java:155: error: illegal line end in character literal
                        servidor = ''
                                    ^
Main.java:157: error: unclosed character literal
                        if eleccion == 0: servidor = 'http://www.comunio.es/team_news.phtml'
                                                     ^
Main.java:158: error: unclosed character literal
                        elif eleccion == 1: servidor = 'http://www14.comunio.es/team_news.phtml'
                                                       ^
Main.java:159: error: unclosed character literal
			padre.PushStatusText('Logueados despues de '+str(self.lc.intento)+' intentos. Cookie disponible')
			                     ^
Main.java:159: error: unclosed character literal
			padre.PushStatusText('Logueados despues de '+str(self.lc.intento)+' intentos. Cookie disponible')
			                                           ^
Main.java:159: error: unclosed character literal
			padre.PushStatusText('Logueados despues de '+str(self.lc.intento)+' intentos. Cookie disponible')
			                                                                  ^
Main.java:159: error: unclosed character literal
			padre.PushStatusText('Logueados despues de '+str(self.lc.intento)+' intentos. Cookie disponible')
			                                                                                               ^
Main.java:162: error: unclosed character literal
			padre.PushStatusText(str(self.lc.intento)+' intentos fallidos')
			                                          ^
Main.java:162: error: unclosed character literal
			padre.PushStatusText(str(self.lc.intento)+' intentos fallidos')
			                                                             ^
Main.java:166: error: unclosed character literal
                f_read = open('cookie.txt','r+')
                              ^
Main.java:166: error: unclosed character literal
                f_read = open('cookie.txt','r+')
                                              ^
Main.java:167: error: empty character literal
                cookie_fichero = f_read.readline().replace('\n','')
                                                                ^
Main.java:167: error: unclosed character literal
                cookie_fichero = f_read.readline().replace('\n','')
                                                                 ^
Main.java:169: error: unclosed character literal
                f_write = open('cookie.txt','r+')
                               ^
Main.java:169: error: unclosed character literal
                f_write = open('cookie.txt','r+')
                                               ^
Main.java:170: error: empty character literal
                if cookie_entrada != '':
                                     ^
Main.java:170: error: unclosed character literal
                if cookie_entrada != '':
                                      ^
Main.java:181: error: empty character literal
		servidor = ''
		           ^
Main.java:181: error: illegal line end in character literal
		servidor = ''
		            ^
Main.java:183: error: unclosed character literal
		if eleccion == 0: servidor = 'www.comunio.es'
		                             ^
Main.java:183: error: illegal line end in character literal
		if eleccion == 0: servidor = 'www.comunio.es'
		                                            ^
Main.java:184: error: unclosed character literal
		elif eleccion == 1: servidor = 'www14.comunio.es'
		                               ^
Main.java:184: error: illegal line end in character literal
		elif eleccion == 1: servidor = 'www14.comunio.es'
		                                                ^
Main.java:194: error: reached end of file while parsing
	app.MainLoop()
	              ^
97 errors
stdout
Standard output is empty