summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x9kwpyqt.py84
1 files changed, 0 insertions, 84 deletions
diff --git a/9kwpyqt.py b/9kwpyqt.py
index 3ea6fcb..51da3b0 100755
--- a/9kwpyqt.py
+++ b/9kwpyqt.py
@@ -14,38 +14,10 @@ API_URL = "http://www.9kw.eu/index.cgi"
API_KEY = ""
soundfile = "notify.wav"
-class PixelInfo():
- pixelA = 0
- pixelR = 0
- pixelG = 0
- pixelB = 0
-
- def __init__(self, argb):
- self.pixelB = argb & 0xff
- argb = argb >> 8
- self.pixelG = argb & 0xff
- argb = argb >> 8
- self.pixelR = argb & 0xff
- argb = argb >> 8
- self.pixelA = argb & 0xff
-
- def isLower(self, r, g, b):
- return (self.pixelR < r and self.pixelG < g and self.pixelB < b)
-
- def isHigher(self, r, g, b):
- return (self.pixelR > r and self.pixelG > g and self.pixelB > b)
-
- def isExactly(self, r, g, b):
- return (self.pixelR == r and self.pixelG == g and self.pixelB == b)
-
-
-
class ExtendedQLabel(QLabel):
clicked = pyqtSignal(int, str)
image = False # QPixmap()
imageR = False # QPixmap() resized
- imageB = False # QImage()
- captchaType = False # int / detected captcha type
def __init(self, parent):
QLabel.__init(self, parent)
@@ -54,15 +26,11 @@ class ExtendedQLabel(QLabel):
self.image = image
self.imageR = self.image.scaled(self.size(),
Qt.KeepAspectRatio)
- self.imageB = False
- self.captchaType = False
self.setPixmap(self.imageR)
def removeImage(self):
self.image = False
self.imageR = False
- self.imageB = False
- self.captchaType = False
self.setPixmap(QPixmap())
def resizeEvent(self, evt=None):
@@ -72,58 +40,6 @@ class ExtendedQLabel(QLabel):
Qt.KeepAspectRatio)
self.setPixmap(self.imageR)
- def mouseReleaseEvent(self, ev):
- if not self.image:
- return
- if not self.imageB:
- self.imageB = self.image.toImage()
-
- # get size of pixmap
- imgx = self.pixmap().size().width()
- imgy = self.pixmap().size().height()
-
- # get cursor position relative to pixmap ((0,0) = topleft)
- x = ev.pos().x() - self.size().width() / 2 + imgx/2
- y = ev.pos().y() - self.size().height() / 2 + imgy/2
-
- if not self.captchaType:
- # Which type of captcha is this image?
- if PixelInfo(self.imageB.pixel(90, 45)).isExactly(0,0,0) and \
- PixelInfo(self.imageB.pixel( 5, 30)).isHigher(220,220,220) and \
- PixelInfo(self.imageB.pixel(40, 5)).isHigher(220,220,220) and \
- (PixelInfo(self.imageB.pixel(58, 30)).isHigher(220,220,220) or \
- PixelInfo(self.imageB.pixel(71, 30)).isHigher(220,220,220)) and \
- (PixelInfo(self.imageB.pixel(40, 59)).isHigher(220,220,220) or \
- PixelInfo(self.imageB.pixel(40, 60)).isHigher(220,220,220)):
- self.captchaType = 1
- elif PixelInfo(self.imageB.pixel( 16, 47)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(144, 47)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(269, 47)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel( 16, 172)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(144, 172)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(269, 172)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel( 16, 298)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(144, 298)).isLower(20,20,20) and \
- PixelInfo(self.imageB.pixel(269, 298)).isLower(20,20,20):
- self.captchaType = 2
- else:
- self.captchaType = -1
-
- if self.captchaType == 1:
- # check if on pixmap (upper 17.5% = infopanel)
- if x > imgx or y > imgy or x < 0 or y < 0.175*imgy:
- return
- xpiece = x // (imgx / 3) + 1
- ypiece = (y-0.175*imgy) // (imgy*0.825 / 3)
- self.clicked.emit(3*ypiece+xpiece, ",")
- elif self.captchaType == 2:
- # check if on pixmap (upper 7% = infopanel)
- if x > imgx or y > imgy or x < 0 or y < 0.0735*imgy:
- return
- xpiece = x // (imgx / 3) + 1
- ypiece = (y-0.0735*imgy) // (imgy*0.9265 / 3)
- self.clicked.emit(3*(2-ypiece)+xpiece, "")
-
class CaptchaGUI(QWidget):