zoukankan      html  css  js  c++  java
  • wxpython制作金山快盘自动签到程序

    首先感谢龙昌在http://www.oschina.net/code/snippet_93572_10721发布的金山快盘自动签到程序代码,本人在此基础上,利用wxpython做了一个程序,具体代码如下:

    # -*- coding: cp936 -*-
    #'@小五义 http://www.cnblogs.com'
    #'金山快盘签到程序'
    import urllib
    import urllib2
    import cookielib
    import json
    import re
    import wx
    
    def create(parent):
        return Frame1(parent)
    
    [wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1PANEL1, wxID_FRAME1STATICTEXT1, 
     wxID_FRAME1STATICTEXT2, wxID_FRAME1STATICTEXT3, wxID_FRAME1TEXTCTRL1, 
     wxID_FRAME1TEXTCTRL2, 
    ] = [wx.NewId() for _init_ctrls in range(8)]
    
    
    
    class Frame1(wx.Frame):
        def _init_ctrls(self, prnt):
            # generated method, don't edit
            wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
                  pos=wx.Point(529, 321), size=wx.Size(400, 250),
                  style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION,
                  title='金山快盘自动签到V1.0')
            self.SetClientSize(wx.Size(392, 216))
    
            self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
                  pos=wx.Point(0, 0), size=wx.Size(392, 216),
                  style=wx.TAB_TRAVERSAL)
    
            self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
                  label='用户名:', name='staticText1', parent=self.panel1,
                  pos=wx.Point(8, 16), size=wx.Size(95, 23), style=0)
            self.staticText1.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD,
                  False, u'Tahoma'))
    
            self.staticText2 = wx.StaticText(id=wxID_FRAME1STATICTEXT2,
                  label='密码:', name='staticText2', parent=self.panel1,
                  pos=wx.Point(8, 56), size=wx.Size(92, 23), style=0)
            self.staticText2.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD,
                  False, u'Tahoma'))
    
            self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL1, name='textCtrl1',
                  parent=self.panel1, pos=wx.Point(112, 16), size=wx.Size(176, 24),
                  style=0, value='')
    
            self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL2, name='textCtrl2',
                  parent=self.panel1, pos=wx.Point(112, 56), size=wx.Size(176, 22),
                  style=wx.TE_PASSWORD, value='')
    
            self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label='签到',
                  name='button1', parent=self.panel1, pos=wx.Point(304, 56),
                  size=wx.Size(75, 24), style=0)
            self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
                  id=wxID_FRAME1BUTTON1)
    
            self.staticText3 = wx.StaticText(id=wxID_FRAME1STATICTEXT3,
                  label='签到 状态 ......', name='staticText3', parent=self.panel1,
                  pos=wx.Point(16, 104), size=wx.Size(352, 96), style=0)
            self.staticText3.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD,
                  False, u'Tahoma'))
            self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
                  id=wxID_FRAME1BUTTON1)
    
            cj = cookielib.CookieJar()
            self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
            urllib2.install_opener(self.opener)
            self.opener.addheaders = [('User-agent', 'IE')]
    
    
        def __init__(self, parent):
            self._init_ctrls(parent)
    
        def login(self, username, password):
            url = 'https://www.kuaipan.cn/index.php?ac=account&op=login'
            data = urllib.urlencode({'username':username, 'userpwd':password})
            req = urllib2.Request(url, data)
            
            try:
                fd = self.opener.open(req)
                
            except Exception, e:
                self.staticText3.SetLabel('网络连接错误!')
                return False
            if fd.url != "http://www.kuaipan.cn/home.htm":
                self.staticText3.SetLabel("用户名跟密码不匹配!")
                return False
            self.staticText3.SetLabel('%s 登陆成功' % username),
            return True
    
        def logout(self):
            url = 'http://www.kuaipan.cn/index.php?ac=account&op=logout'
            req = urllib2.Request(url)
            fd = self.opener.open(req)
            fd.close()
            
        def sign(self):
            
            url = 'http://www.kuaipan.cn/index.php?ac=common&op=usersign'
            req = urllib2.Request(url)
            fd = self.opener.open(req)
            sign_js = json.loads(fd.read())
            
            #print sign_js
            
            tri= self.staticText3.GetLabel().encode('cp936')
            
            if sign_js['state'] == -102:
                self.staticText3.SetLabel(tri+'\n'+"今天已签到了!")
            elif sign_js['state'] == 1:
                self.staticText3.SetLabel(tri+'\n'+"签到成功! \n获得积分:%d,总积分:%d;\n获得空间:%dM\n" % (sign_js['increase'], sign_js['status']['points'], sign_js['rewardsize']))
            else:
                self.staticText3.SetLabel(tri+'\n'+"签到失败!")
            fd.close()
    
    
    
        def OnButton1Button(self, event):
            self.staticText3.SetLabel('')
            namew=self.textCtrl1.GetValue().encode('cp936')
            passw=self.textCtrl2.GetValue().encode('cp936')
            if self.login(namew, passw) == True:
                self.sign()
            self.logout()
            #event.Skip()
    
    
    class App(wx.App):
        def OnInit(self):
            
            self.main = create(None)
            self.main.Show()
            self.SetTopWindow(self.main)
            return True
    
    def main():
        application = App(0)
        application.MainLoop()    
    
    if __name__ == '__main__':
        main()
        

    @小五义 http://www.cnblogs.com/xiaowuyi

  • 相关阅读:
    关于sifari兼容性的一个问题
    HTML标签的应用(新手)
    HTML标签的应用(新手)
    未完成的开锁动画演示
    HTML标签的应用(新手)
    HTML新手向
    C++
    STL之set
    C++输入输出
    提升一下逼格
  • 原文地址:https://www.cnblogs.com/xiaowuyi/p/2516200.html
Copyright © 2011-2022 走看看