@ -52,7 +52,7 @@ def write_to_log(self, entry):
# check if file exists, if not: write it!
# check if file exists, if not: write it!
if not os . path . isfile ( log_path ) :
if not os . path . isfile ( log_path ) :
html_template = open ( ' templates/log .html ' , ' r ' ) . read ( )
html_template = open ( ' templates/index .html ' , ' r ' ) . read ( )
css_template = open ( ' templates/stylesheet.css ' , ' r ' ) . read ( )
css_template = open ( ' templates/stylesheet.css ' , ' r ' ) . read ( )
with open ( log_path , ' w ' ) as l :
with open ( log_path , ' w ' ) as l :
l . write ( html_template )
l . write ( html_template )
@ -71,7 +71,6 @@ def write_to_log(self, entry):
< small class = " postid " > { handle } < / small >
< small class = " postid " > { handle } < / small >
{ entry }
{ entry }
< small class = " date " > Added on { now } < / small >
< small class = " date " > Added on { now } < / small >
< small class = " tags " > Tags : < span class = " tagcontainer " > < / span > < / small >
< / div > '''
< / div > '''
print ( f ' Post: { post } ' )
print ( f ' Post: { post } ' )
with open ( log_path , ' a+ ' ) as l :
with open ( log_path , ' a+ ' ) as l :
@ -81,34 +80,37 @@ def write_to_log(self, entry):
h . write ( handle )
h . write ( handle )
print ( ' added to the .handles file! ' )
print ( ' added to the .handles file! ' )
def find_in_soup ( self , handle , tag ) :
# *spark
print ( ' --------ADD TAG --------- ' )
# add annotations
print ( f ' handle: { handle } ' )
log = ' index.html '
# def find_in_soup(self, handle, annotation):
log_path = os . path . join ( self . output , log )
# print('--------ADD ANNOTATION ---------')
html = open ( log_path , ' r ' ) . read ( )
# print(f'handle: { handle }')
soup = BeautifulSoup ( html , ' html.parser ' )
# log = 'index.html'
# print(soup.prettify())
# log_path = os.path.join(self.output, log)
post = soup . find ( id = handle )
# html = open(log_path, 'r').read()
# print(f'posts: { posts }')
# soup = BeautifulSoup(html, 'html.parser')
# for post in posts:
# # print(soup.prettify())
print ( f ' post: { post } ' )
# post = soup.find(id=handle)
if post :
# # print(f'posts: { posts }')
# tagcontainer = post.findChildren(id="tagcontainer", recursive=True)[0]
# # for post in posts:
# print(f'tagcontainer: { tagcontainer }')
# print(f'post: { post }')
# print(f'tagcontainer.contents: { tagcontainer.contents }')
# if post:
# tagcontainer.contents.append(f'<span class="tag">{ tag }</span>')
# # annotationcontainer = post.findChildren(id="annotationcontainer", recursive=True)[0]
# print(f'tagcontainer.contents: { tagcontainer.contents }')
# # print(f'annotationcontainer: { annotationcontainer }')
# # print(f'annotationcontainer.contents: { annotationcontainer.contents }')
# new_tag = soup.new_tag("a", href="http://www.example.com")
# # annotationcontainer.contents.append(f'<span class="annotation">{ annotation }</span>')
new_tag = soup . new_tag ( " span " )
# # print(f'annotationcontainer.contents: { annotationcontainer.contents }')
new_tag . append ( tag )
soup . find ( id = handle ) . find ( class_ = " tagcontainer " ) . append ( new_tag )
# # new_annotation = soup.new_annotation("a", href="http://www.example.com")
print ( f ' new soup: { str ( soup ) } ' )
# new_annotation = soup.new_annotation("span")
# new_annotation.append(annotation)
# write soup to file
# soup.find(id=handle).find(class_="annotationcontainer").append(new_annotation)
with open ( log_path , ' w ' ) as l :
# print(f'new soup: { str(soup) } ')
l . write ( str ( soup ) )
# # write soup to file
# with open(log_path, 'w') as l:
# l.write(str(soup))
class MUCBot ( slixmpp . ClientXMPP ) :
class MUCBot ( slixmpp . ClientXMPP ) :
@ -148,10 +150,6 @@ class MUCBot(slixmpp.ClientXMPP):
# password=the_room_password,
# password=the_room_password,
wait = True )
wait = True )
# NOTE(luke): disabled for now. We'll make it possible to speak to logbot privately later
# Send a message to the room
# self.send_message(mto=self.groupchat, mbody='Hello! RECbot here. I\'m new :). You can log text/image/sound/video messages, by including @bot in your message. Happy logging! PS. you can access the logs at https://vvvvvvaria.org/logs/', mtype='groupchat')
def muc_message ( self , msg ) :
def muc_message ( self , msg ) :
# Some inspection commands
# Some inspection commands
#print('Message: {}'.format(msg))
#print('Message: {}'.format(msg))
@ -159,6 +157,25 @@ class MUCBot(slixmpp.ClientXMPP):
# Always check that a message is not the bot itself, otherwise you will create an infinite loop responding to your own messages.
# Always check that a message is not the bot itself, otherwise you will create an infinite loop responding to your own messages.
if msg [ ' mucnick ' ] != self . nick :
if msg [ ' mucnick ' ] != self . nick :
if ' @bot ' in msg [ ' body ' ] :
# Send some info about this bot.
self . send_message (
mto = self . groupchat ,
mbody = ''' Hello! RECbot here. I \' m a new version of logbot.
You can log type of text messages , by including __ADD__ in your message . Or , you can send an image / sound ( * spark ) / video ( * spark ) file to this chat and it will be logged for you .
Items in the log can also be deleted again , by using the unique HANDLE of each post . You can find these handles in the generated HTML page , they look like this : + / / - * .
Happy logging !
PS . you can access these logs at https : / / vvvvvvaria . org / logs / . ''' ,
mtype = ' groupchat '
)
else :
# Respond to incoming __ACTION_WORDS__!
# Check if output folder exists
# Check if output folder exists
if not os . path . exists ( self . output ) :
if not os . path . exists ( self . output ) :
os . mkdir ( self . output )
os . mkdir ( self . output )