wxpython制作金山快盘自动签到程序

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

首先感谢龙昌在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

目录
相关文章
|
10月前
|
数据采集 缓存 安全
Go单协程事件调度器:游戏后端的无锁有序与响应时间掌控
Go单协程事件调度器通过串行化执行,实现无锁、有序的高效并发控制,适用于高实时性游戏后端。其核心在于严控单事件耗时(<1ms)、分优先级处理玩家交互与定时任务,并结合任务切片、异步卸载与数据预处理优化响应性能,保障全服稳定低延迟。
401 1
|
10月前
|
数据采集 数据挖掘 API
1688店铺所有商品API使用指南
本文详解1688店铺商品API的使用,涵盖接口摘要、概述、Python请求示例及注意事项。通过该API可获取商品列表、详情等核心数据,适用于店铺管理、ERP系统与数据分析。结合代码演示,助开发者快速完成对接,实现高效数据采集与应用。(239字)
|
11月前
|
人工智能 数据可视化 知识图谱
NanoBanana pro真的强嘛?我试了试结果...........【附带工具+Prompt双邪修玩法】
小阁带你体验Nano Banana Pro!1:1动漫转真人、老照片修复、文生图、漫画上色翻译……效果惊艳,中文理解超强。阁下AI全球首发集成该模型,打造AI创作新境界,一键生成爆款内容,重新定义你的生产力!
|
人工智能 安全 测试技术
Apifox对决Apipost:API管理工具的深度较量与未来前瞻
在快节奏的软件开发中,API管理工具的选择直接影响效率与协作。本文对比Apipost与Apifox,从界面设计、核心功能、AI能力、离线支持、团队协作、生态整合及性能表现等维度,深入解析两者差异,帮助团队找到更契合的开发利器。
|
10月前
|
存储 安全 API
【剪映小助手】保存剪映草稿
保存剪映草稿。该接口用于保存当前的草稿状态,确保编辑的内容得到持久化存储。通常在完成一系列编辑操作后调用此接口,以防止编辑内容丢失。
1024 0
|
12月前
|
存储 监控 API
Python datetime模块:时间处理的瑞士军刀
免费Python编程教程,深入讲解datetime模块核心用法:时间对象创建、格式化、运算及时区处理,附实战案例与避坑指南,助你高效掌握Python时间操作。链接:https://pan.quark.cn/s/2c17aed36b72
1229 0
|
存储 监控 算法
园区导航系统技术架构实现与原理解构
本文聚焦园区导航场景中室内外定位精度不足、车辆调度路径规划低效、数据孤岛难以支撑决策等技术痛点,从架构设计到技术原理,对该系统从定位到数据中台进行技术拆解。
755 0
园区导航系统技术架构实现与原理解构
|
存储 网络性能优化 网络安全
Hyper-V云桌面优化的设置指南
这份《Hyper-V云桌面优化设置指南》涵盖了硬件、虚拟机配置、网络、安全及高级配置的优化建议。硬件方面,确保CPU支持虚拟化并合理分配资源,使用SSD和VHDX格式提升存储性能;虚拟机配置上,优化内存、处理器和硬盘设置,并安装Hyper-V集成服务;网络优化包括虚拟交换机配置、适配器调整及QoS策略;安全性设置涵盖防火墙、端口管理和加密;高级配置如显卡直连和实时迁移进一步提升性能。这些措施能显著提高Hyper-V云桌面的效率与稳定性。
1009 12
|
人工智能 测试技术
Ola:清华联合腾讯等推出的全模态语言模型!实现对文本、图像、视频和音频的全面理解
Ola 是由清华大学、腾讯 Hunyuan 研究团队和新加坡国立大学 S-Lab 合作开发的全模态语言模型,支持文本、图像、视频和音频输入,并具备实时流式解码功能。
1936 16