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

  • 相关阅读:
    hive与hbase整合
    待重写
    hive DML
    【知识强化】第六章 总线 6.1 总线概述
    【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构
    【知识强化】第四章 指令系统 4.3 CISC和RISC的基本概念
    【知识强化】第四章 指令系统 4.2 指令寻址方式
    【知识强化】第四章 指令系统 4.1 指令格式
    【知识强化】第三章 存储系统 3.6 高速缓冲存储器
    【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器
  • 原文地址:https://www.cnblogs.com/xiaowuyi/p/2516200.html
Copyright © 2011-2022 走看看