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

  • 相关阅读:
    OK335x mksd.sh hacking
    Qt jsoncpp 对象拷贝、删除、函数调用 demo
    OK335xS 256M 512M nand flash make ubifs hacking
    Qt QScrollArea and layout in code
    JsonCpp Documentation
    Qt 4.8.5 jsoncpp lib
    Oracle数据库生成UUID
    freemarker得到数组的长度
    FreeMarker中if标签内的判断条件
    freemarker语法
  • 原文地址:https://www.cnblogs.com/xiaowuyi/p/2516200.html
Copyright © 2011-2022 走看看