#!/usr/bin/env python
# -*- coding:utf-8 -*-
# coded by Daniel King
import re, time, thread, webbrowser
from Tkinter import *
import urllib, urllib2, cookielib, json
class Kaixin(object):
def __init__(self, app):
self.app = app
self.signed_in = False
self.cj = cookielib.LWPCookieJar()
try:
self.cj.revert('kaixin.coockie')
except:
None
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)
def signin(self):
r = self.opener.open('http://www.kaixin001.com/home/')
if r.geturl() == 'http://www.kaixin001.com/?flag=1&url=%2Fhome%2F':
print 'Need logging on!'
params = {'email':self.app.email, 'password':self.app.passwd, 'remember':1}
req = urllib2.Request(
'http://www.kaixin001.com/login/login.php',
urllib.urlencode(params)
)
r = self.opener.open(req)
if r.geturl() == 'http://www.kaixin001.com/home/':
print 'Logged on successfully!'
self.cj.save('kaixin.coockie')
self.signed_in = True
else:
print 'ok!'
self.signed_in = True
def monitor(self):
if not self.signed_in:
self.signin()
button = self.app.buttons['monitor']
if self.signed_in:
r = self.opener.open('http://www.kaixin001.com/app/app.php?aid=1062&url=garden/index.php')
m = re.search('var g_verify = "(.+)";', r.read())
verify = m.group(1)
self.is_monitoring = True
button['text'] = u'停止'
while self.is_monitoring:
print time.strftime('%y/%m/%d %H:%M:%S')
req = urllib2.Request(
'http://www.kaixin001.com/house/garden/getfriendmature.php',
urllib.urlencode({'_':'','verify':verify})
)
r = self.opener.open(req)
self.app.data = json.loads(r.read())
app.list.delete(0, END)
for f in self.app.data:
self.app.list.insert(END, f['realname'])
time.sleep(30)
button['text'] = u'开始'
print 'Monitoring is stopped.'
def stop_monitoring(self):
self.is_monitoring = False
class App(Tk):
def __init__(self):
Tk.__init__(self)
self.data = []
self.email = ''
self.passwd = ''
self.interval = 30
self.kaixin = Kaixin(self)
self.font = 'Tahoma 9'
self.geometry('240x200')
self.title(u'开心网果实探测仪')
self.btnpane = PanedWindow(self)
self.btnpane.pack(expand = 0, side = 'bottom')
buttons = [[self.on_monitor, u'开始', 'monitor'],
[self.on_config, u'设置', 'config'],
[self.on_exit, u'退出', 'exit']]
self.buttons = {}
for btn in buttons:
button = Button(self.btnpane, text = btn[1], font = self.font)
self.buttons[btn[2]] = button
button.bind('<ButtonRelease-1>', btn[0])
self.btnpane.add(button)
self.list = Listbox(self, font = self.font)
self.list.pack(expand = 1, fill = 'both', side = 'top')
self.list.bind('<Double-ButtonRelease-1>', self.on_list_dblclick)
def on_monitor(self, event):
button = self.buttons['monitor']
if button['text'] == u'开始':
thread.start_new_thread(self.kaixin.monitor, ())
else:
self.kaixin.stop_monitoring()
def on_config(self, event):
win = ConfigWin(self)
def on_list_dblclick(self, event):
s = self.list.curselection()
if len(s) == 1:
uid = self.data[int(s[0])][u'uid']
webbrowser.open('http://www.kaixin001.com/app/app.php?'
'aid=1062&url=garden/index.php&_lgmode=pri&fuid='+str(uid));
def on_exit(self, event):
self.quit()
class ConfigWin(Toplevel):
def __init__(self, app):
Toplevel.__init__(self, app)
self.app = app
self.title(u'设置')
Label(self, text = u'电邮:', font = app.font).grid(row = 0, column = 0)
self.email = Entry(self)
self.email.grid(row = 0, column = 1)
Label(self, text = u'密码:', font = app.font).grid(row = 1, column = 0)
self.passwd = Entry(self, show = '*')
self.passwd.grid(row = 1, column = 1)
Label(self, text = u'间隔:', font = app.font).grid(row = 2, column = 0)
self.interval = Entry(self, text = '30')
self.interval.grid(row = 2, column = 1)
self.email.insert(0, app.email)
self.passwd.insert(0, app.passwd)
self.interval.insert(0, str(app.interval))
btnpane = PanedWindow(self)
btnpane.grid(row = 3, column = 0, columnspan = 2)
btn_cancel = Button(btnpane, text = u'取消', font = app.font)
btn_cancel.grid(row = 3, column = 0, columnspan = 2)
btn_ok = Button(btnpane, text = u'确定', font = app.font)
btn_ok.grid(row = 3, column = 0, columnspan = 2)
btnpane.add(btn_cancel)
btnpane.add(btn_ok)
btn_ok.bind('<ButtonRelease-1>', self.on_ok)
btn_cancel.bind('<ButtonRelease-1>', self.on_cancel)
self.focus_set()
self.grab_set()
self.wait_window()
def on_ok(self, event):
self.app.email = self.email.get()
self.app.passwd = self.passwd.get()
self.app.interval = int(self.interval.get())
self.destroy()
def on_cancel(self, event):
self.destroy()
app = App()
app.mainloop()
分享到:
相关推荐
在本文中,我们将深入探讨“种树获果实小程序源码”的相关知识点,这款小程序的设计灵感源自于各大应用程序中的类似互动,旨在提供一个有趣的用户参与方式,让用户通过虚拟种植、照顾树木来获得虚拟水果。...
合成大西瓜小游戏是一款深受用户喜爱的在线休闲游戏,它的微信小程序版本更是因其便捷性和互动性而广受欢迎。本文将深入探讨这款小游戏的微信小程序源码,解析其背后的开发技术和实现原理。 首先,我们要理解微信小...
基于深度学习的温室大棚小番茄果实计数方法 一、深度学习在温室大棚小番茄果实计数中的应用 深度学习技术已经在多个领域获得了广泛的应用,包括计算机视觉、自然语言处理、语音识别等。本文中,我们将讨论深度学习...
"果实信息提取器"是一个基于Python编程语言开发的软件工具,设计用于高效地从各种数据源中抓取和处理关于果实的信息。这个工具的核心功能是提取果实的数量,这对于农业研究、果蔬销售或供应链管理等领域非常实用。其...
1.本项目基于Keras框架,引入CNN进行模型训练,采用Dropout梯度下降算法,按比例丢弃部分神经元,同时利用IOT及微信小程序实现自动化远程监测果实成熟度以及移动端实时监测的功能,为果农提供采摘指导,有利于节约...
这个贪吃蛇小程序是利用STM32F103的性能开发的一个有趣的项目,旨在展示如何在嵌入式系统上实现游戏功能。 首先,我们要理解STM32F103的基本结构。它拥有高速的闪存、SRAM存储器,以及一系列的外设接口,如UART、...
在果实成熟衰老方面,水杨酸被证实能有效延缓果实的成熟衰老,提高果实的硬度和新鲜度,延长果实的贮藏保鲜期。这一现象在多种果树上均有报道,例如黄金梨、苹果、梨、桃、香蕉、猕猴桃、番茄和甜樱桃等。通过采前和...
【大班体育游戏教案——小袋鼠收果实】 在幼儿教育中,体育游戏是一种非常有效的教学方式,能够激发孩子们的运动兴趣,同时培养他们的团队协作能力和解决问题的能力。本教案的主题是“小袋鼠收果实”,旨在通过模拟...
探究实验 花生果实大小的变异.docx
使用机器摘果实的录像
【标题】"基于离散点的果实表面三维重建"是一个涉及计算机图形学、图像处理以及机器视觉领域的技术,主要用于在数字环境下对真实世界的果实进行精确的三维建模。这一技术通常应用于农业研究、产品质量检测、虚拟现实...
大果实的皮肤颜色较红,种子多于小果实。 果实大小与L / D比(R2 = 0.741,p≤0.01)和硬度(R2 = 0.604,p≤0.01)之间存在强烈的负相关关系。 肤色和每个果实的种子数与果实大小呈正相关,尤其是与果实高度呈正...
梨果实图像数据集是计算机视觉领域的一个重要资源,主要用于训练和测试深度学习模型,特别是针对物体检测任务。这个数据集包含超过1400张梨果实的图片,为研究人员和开发者提供了一个丰富的训练素材库,有助于提升...
3. **去除小面积区域**:使用`bwareaopen`函数去除图像中小于9000像素的连通区域,以去除背景噪声或小颗粒物体,保留较大的目标物体(如重叠的果实)。 4. **腐蚀操作**:使用`imerode`函数进行腐蚀操作,目的是...
在OpenCV库中进行果实分割与识别是一项常见的计算机视觉任务,尤其在农业自动化、果蔬质量检测等领域有着广泛应用。本项目专注于猕猴桃果实的图像处理,涵盖了几个关键步骤,包括图像预处理、特征提取和目标识别。...
"果实时切割点的提取.zip"这个压缩包文件包含了实现这一目标的MATLAB程序和实验步骤,旨在帮助研究人员或工程师理解并应用相关算法。下面将详细介绍这个项目中的关键知识点。 首先,切割点的提取是机器人摘果过程中...
本主题聚焦于如何利用OpenCV库处理果实图像,通过颜色空间的阈值分割方法来识别图像中的果实。OpenCV是一个强大的开源计算机视觉库,广泛应用于图像处理和计算机视觉任务。 首先,我们要理解HSV色彩空间。HSV(Hue,...
自然光照条件下的采摘机器人在执行任务时,果实的识别是一个关键环节。然而,光照环境的复杂性,尤其是阴影的存在,往往会对果实的准确识别造成困扰。这篇由熊俊涛等人发表在《农业工程学报》的文章,探讨了如何在...