139 lines
4.1 KiB
Python
139 lines
4.1 KiB
Python
# importing libraries
|
|
import sys
|
|
import re
|
|
|
|
from krita import *
|
|
from textblob import TextBlob
|
|
from textblob_de import TextBlobDE
|
|
|
|
|
|
from PyQt5.QtWidgets import *
|
|
from PyQt5.QtGui import *
|
|
from PyQt5.QtCore import *
|
|
|
|
from .classes import *
|
|
from .svg_vorlagen import *
|
|
|
|
|
|
class DockerLinkGrepper(DockWidget):
|
|
global link
|
|
global html
|
|
global linkdata
|
|
global content
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.setWindowTitle("Url to Art")
|
|
mainWidget = QWidget(self)
|
|
self.setWidget(mainWidget)
|
|
|
|
# add button and layout for button
|
|
layoutForButtons = QHBoxLayout()
|
|
newButton = QPushButton("load text", mainWidget)
|
|
newButton.move(100, 700)
|
|
layoutForButtons.addWidget(newButton)
|
|
|
|
# label
|
|
nameLabel = QLabel()
|
|
nameLabel.setText('Please input a link:')
|
|
|
|
#layoutForButtons.addWidget(nameLabel)
|
|
|
|
#input field
|
|
line = QLineEdit()
|
|
line.setPlaceholderText("URL")
|
|
line.setMinimumWidth(300)
|
|
line.setFont(QFont("console",8)) # change font
|
|
layoutForButtons.addWidget(line)
|
|
|
|
|
|
# write some actions
|
|
clicked = 'Button clicked'
|
|
parser = MyHTMLParser()
|
|
content = line.text()
|
|
|
|
#add a checkbox
|
|
newCheckbox = QCheckBox()
|
|
newCheckbox.setText('realise input')
|
|
layoutForButtons.addWidget(newCheckbox)
|
|
mainWidget.setLayout(layoutForButtons)
|
|
mainWidget.layout().addWidget(newButton)
|
|
|
|
newButton.clicked.connect(lambda: newCheckbox.setCheckState(2))
|
|
newCheckbox.clicked.connect(lambda: parser.feed(urllib.request.urlopen(content).read().decode()))
|
|
#parser.feed(urllib.request.urlopen(content).read().decode())
|
|
#link = urllib.request.urlopen(content).read().decode()
|
|
linkdata = parser.data
|
|
|
|
# language
|
|
language = ''
|
|
|
|
# filtering parsed text
|
|
text = ""
|
|
for phrases in linkdata:
|
|
#print (phrases)
|
|
#print('pre: ' + phrases)
|
|
phrases = phrases.rstrip("\n\r+0-9[]()+")
|
|
#print('after: ' + phrases)
|
|
# skip unwanted characters
|
|
text = text + phrases
|
|
#print('get: ' + phrases)
|
|
|
|
#print(text)
|
|
# create textblob
|
|
blob = TextBlob(text)
|
|
#print(blob.tags)
|
|
|
|
for w in blob.words:
|
|
if re.match(r"and", w):
|
|
language = 'en'
|
|
elif re.match(r"und", w):
|
|
language = 'de'
|
|
|
|
#print(language)
|
|
if language == 'de':
|
|
blob = TextBlobDE(text)
|
|
|
|
sentence_lens = []
|
|
commas = []
|
|
polarity = []
|
|
|
|
# print polarity of sentences
|
|
for sentence in blob.sentences:
|
|
|
|
# length of sentences
|
|
sentence_lens.append(len(sentence))
|
|
|
|
# number of commas
|
|
commas.append(len(re.findall(',', str(sentence))))
|
|
|
|
# polarity
|
|
polarity.append(sentence.sentiment.polarity)
|
|
|
|
# init new textforart object
|
|
#art = textforart(self, language, sentence_lens, blob.sentences, commas, polarity)
|
|
|
|
# make art out of object
|
|
|
|
# width: 0 - 700
|
|
# height: 0 - 700
|
|
# fill color:#000000 # stroke color:#000000
|
|
#stroke = "rgb(" + str(round(125*(1/art.mean_number_commas))) + ", " + str(round(125 - art.min_sentences_polarity)) + ", " + str(round(125 - art.max_sentences_polarity)) + ")"
|
|
#fill = "rgb(" + str(round(125*(1/art.mean_number_commas))) + ", " + str(round(125 - art.min_sentences_polarity)) + ", " + str(round(125 - art.max_sentences_polarity)) + ")"
|
|
#ImageColor.getcolor("#23a9dd", "RGB")
|
|
|
|
stroke = "rgb(255, 255, 255)"
|
|
stroke = "rgb(255, 254, 94.)"
|
|
#fill = "rgb(255, 255, 255)"
|
|
|
|
# define with of svg
|
|
#heigh = 700- (10000*art.mean_sentences_polarity)
|
|
#width = 700*art.mean_number_commas
|
|
|
|
#svg = design_svg(stroke, fill, 700, 700)
|
|
#create_svg(svg)
|
|
|
|
|
|
def canvasChanged(self, canvas):
|
|
pass
|
|
|