Permissions of this license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license.
Permissions of this license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license.
Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.
Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.
When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.
When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.
See src/reading_structure/license.txt for the full license.
See src/reading_structure/license.txt for the full license.
## Erase / Replace: Natasha
## Erase / Replace: Natasha
Description: Receives your scanned pages in order, then analyzes each image and its vocabulary. Finds and crops the least common words, and either erases them, or replaces them with the most common words. Outputs a PDF of increasingly distorted scan images.
Description: Receives your scanned pages in order, then analyzes each image and its vocabulary. Finds and crops the least common words, and either erases them, or replaces them with the most common words. Outputs a PDF of increasingly distorted scan images.
This script is very picky about the input images it can work with. For best results, please use high resolution images in RGB colorspace. Errors can occur when image modes do not match or tesseract cannot successfully make HOCR files.
This script is very picky about the input images it can work with. For best results, please use high resolution images in RGB colorspace. Errors can occur when image modes do not match or tesseract cannot successfully make HOCR files.
Author: Alice Strete (RO)
## carlandre & over/under: Alice Strete
Person who aspires to call herself a software artist sometime next year.
Person who aspires to call herself a software artist sometime next year.
Description: Interpreted programming language written in Python3 which translates basic weaving instructions into code and applies them to text.
Description: Interpreted programming language written in Python3 which translates basic weaving instructions into code and applies them to text.
run: make overunder
run: `make overunder`
Instructions:
### Instructions:
over/under works with specific commands which execute specific instructions.
* over/under works with specific commands which execute specific instructions.
When running, an interpreter will open:
* When running, an interpreter will open:
>
`> `
To load your text, type 'load'. This is necessary before any other instructions. Every time you load the text, the previous instructions will be discarded.
* To load your text, type 'load'. This is necessary before any other instructions. Every time you load the text, the previous instructions will be discarded.
To see the line you are currently on, type 'show'.
* To see the line you are currently on, type 'show'.
To start your pattern, type 'over' or 'under', each followed by an integer, separated by a comma.
* To start your pattern, type 'over' or 'under', each followed by an integer, separated by a comma.
e.g. over 5, under 5, over 6, under 10
e.g. over 5, under 5, over 6, under 10
To move on to the next line of text, press enter twice.
* To move on to the next line of text, press enter twice.
To see your pattern, type 'pattern'.
* To see your pattern, type 'pattern'.
To save your pattern in a text file, type 'save'.
* To save your pattern in a text file, type 'save'.
To leave the program, type 'quit'.
* To leave the program, type 'quit'.
## oulibot: Alex
## oulibot: Alex
Description: Chatbot that will help you to write a poem based on the text you inserted by giving you constraints.
Description: Chatbot that will help you to write a poem based on the text you inserted by giving you constraints.
answers=["and again","repetition can be a nice tool, but talk normal to me, please.","WHY ARE YOU WRITING THE SAME THING TWICE, JUST USE THE CHAT HISTORY!"]
answers=["and again","repetition can be a nice tool, but talk normal to me, please.","WHY ARE YOU WRITING THE SAME THING TWICE, JUST USE THE CHAT HISTORY!"]
answers=["I'm neither a bot nor a human, I don't think in categories. :-)","I consider myself transpysical ~\0/~","Real, is everything you see, so here I am, I am writing with you"]
answers=["I'm neither a bot nor a human, I don't think in categories. :-)","I consider myself transpysical ~\0/~","Real, is everything you see, so here I am, I am writing with you"]
elifself.checkAffirmation(incoming_msg)and(self.lastAnswer=="Do you want to write a poem together with me?"orself.lastAnswer=="Are you up for a poem now?"orself.lastAnswer=="We could write a poem together, what do you think?"):
elifself.checkAffirmation(incoming_msg)and(self.lastAnswer=="Do you want to write a poem together with me?"orself.lastAnswer=="Are you up for a poem now?"orself.lastAnswer=="We could write a poem together, what do you think?"):
self.level=0
self.level=0
self.explanation_poem(c,e)
self.explanation_poem(c,e)
elifself.checkNegation(incoming_msg)and(self.lastAnswer=="Do you want to write a poem together with me?"orself.lastAnswer=="Are you up for a poem now?"orself.lastAnswer=="We could write a poem together, what do you think?"):
elifself.checkNegation(incoming_msg)and(self.lastAnswer=="Do you want to write a poem together with me?"orself.lastAnswer=="Are you up for a poem now?"orself.lastAnswer=="We could write a poem together, what do you think?"):
answers=["You don't seem very motivated, I'm gonna generate some ASCII Art for you out of the text. Maybe this will inspire you ;-)",
answers=["You don't seem very motivated, I'm gonna generate some ASCII Art for you out of the text. Maybe this will inspire you ;-)",
"Come on! Maybe some ASCII Art will help you to get motivated?",
"Come on! Maybe some ASCII Art will help you to get motivated?",
"Ok, you refuse a lot, but nobody will ever refuse some raaaaandom ASCII AAAART :-)",
"Ok, you refuse a lot, but nobody will ever refuse some raaaaandom ASCII AAAART :-)",
@ -286,9 +300,10 @@ class HelloBot(irc.bot.SingleServerIRCBot):
answers=["Are you up for a poem now?","Do you want to write a poem together with me?",
answers=["Are you up for a poem now?","Do you want to write a poem together with me?",
"We could write a poem together, what do you think?"]
"We could write a poem together, what do you think?"]
msg=random.choice(answers)
msg=random.choice(answers)
self.lastincoming_msg.append("ASCII")
c.privmsg(self.channel,msg)
c.privmsg(self.channel,msg)
else:
else:
answers=["try it, it's gonna be fun!","oh, really? come on!","I think you would do a great job! Let's go!"]
answers=["try it, it's gonna be fun!","oh, really? come on!","I think you would do a great job! Let's go!", "hm ok","what a pitty you miss something :-(",":-(","But poems are my only profession, let me show you how nice they are","It won't take long...","It's a unique opportunity"]
msg=random.choice(answers)
msg=random.choice(answers)
c.privmsg(self.channel,msg)
c.privmsg(self.channel,msg)
else:
else:
@ -299,6 +314,7 @@ class HelloBot(irc.bot.SingleServerIRCBot):
c.privmsg(self.channel,"Ok, let's try to write a poem together")
c.privmsg(self.channel,"Ok, let's try to write a poem together")
c.privmsg(self.channel,"It's gonna be based on the scanned text you inserted into my drive")
c.privmsg(self.channel,"It's gonna be based on the scanned text you inserted into my drive")
c.privmsg(self.channel,"Your only task is to follow the structure I give you")
c.privmsg(self.channel,"Your only task is to follow the structure I give you")
c.privmsg(self.channel,"It's gonna be 5 lines long")
c.privmsg(self.channel,"I'm gonna start, are you ready?")
c.privmsg(self.channel,"I'm gonna start, are you ready?")
self.lastAnswer="towardspoem"
self.lastAnswer="towardspoem"
@ -313,6 +329,7 @@ class HelloBot(irc.bot.SingleServerIRCBot):
defon_welcome(self,c,e):
defon_welcome(self,c,e):
c.join(self.channel)
c.join(self.channel)
self.explanation(c,e)
self.explanation(c,e)
print("I'm connected now!")
defon_privmsg(self,c,e):
defon_privmsg(self,c,e):
pass
pass
@ -328,7 +345,10 @@ class HelloBot(irc.bot.SingleServerIRCBot):
finished_sentence="".join(self.sentence)
finished_sentence="".join(self.sentence)
self.poem.append(finished_sentence)
self.poem.append(finished_sentence)
c.privmsg(self.channel,"".join(self.sentence))
c.privmsg(self.channel,"".join(self.sentence))
c.privmsg(self.channel,"Nice one! Let's add another line:")
answers=["Nice one! Let's add another line:","Sounds good so far, nex line:","yes, next line follows:","that one is very poetic","a little bit abstract, but still nice","let's add another line"]
msg=random.choice(answers)
c.privmsg(self.channel,msg)
self.lastAnswer="Nice one! Let's add another line:"
self.lastAnswer="Nice one! Let's add another line:"
ifrandom.choice([True,False]):
ifrandom.choice([True,False]):
self.lastPOS=-1
self.lastPOS=-1
@ -410,7 +430,7 @@ class HelloBot(irc.bot.SingleServerIRCBot):