Textvisualisation_as_Art_fo.../wordart/wordart.py
2022-07-13 20:58:07 +02:00

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