Browse Source

Remove ethercalc support

In preparation for the fully IRC-driven system,
remove the code getting extra info from ethercalc.

Change-Id: I1a7092803630a790290205f0b202bc347c3f18c0
changes/67/525167/1
Thierry Carrez 2 years ago
parent
commit
0ff1a65f6c
7 changed files with 5 additions and 114 deletions
  1. +1
    -3
      README.rst
  2. +1
    -33
      config.json.sample
  3. +0
    -12
      html/ptg.html
  4. +1
    -9
      ptgbot/bot.py
  5. +2
    -5
      ptgbot/db.py
  6. +0
    -51
      ptgbot/ethercalc.py
  7. +0
    -1
      requirements.txt

+ 1
- 3
README.rst View File

@@ -10,9 +10,7 @@ the bot, like::

and from that information the bot builds a static webpage with discussion
topics currently discussed ("now") and an indicative set of discussion
topics coming up next ("next"). It also merges information from the
reservable rooms ethercalc in order to produce a single, static,
mobile-friendly page.
topics coming up next ("next").

Room operators commands
=======================


+ 1
- 33
config.json.sample View File

@@ -4,37 +4,5 @@
"irc_server": "irc.freenode.net",
"irc_port": 6667,
"irc_channel": "#CHANNEL",
"db_filename": "html/ptg.json",
"ethercalc_url": "https://ethercalc.openstack.org/_/MYDOC/cells",
"ethercalc_cells": {
"room_line": "8",
"time_column": "A",
"time_range": [ 9, 24 ],
"days": [
{
"B": ["14", "15", "16"],
"C": [],
"D": []
},
{
"E": ["14", "15", "16"],
"F": [],
"G": []
},
{
"H": ["14", "15", "16"],
"I": [],
"J": []
},
{
"K": ["14", "15", "16"],
"L": [],
"M": []
},
{
"N": [],
"O": []
}
]
}
"db_filename": "html/ptg.json"
}

+ 0
- 12
html/ptg.html View File

@@ -59,18 +59,6 @@
{{/each}}
</table>
</div>
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">Planned for today in reservable rooms</h3></div>
<table class="table">
{{#each ethercalc}}
<tr>
<td>{{#hashtag}}{{this}}{{/hashtag}}</td>
</tr>
{{else}}
<tr><td><small><i>Nothing yet</i></small><td></tr>
{{/each}}
</table>
</div>
<p class="text-muted">Content on this page is being driven by room operators through the openstackptg bot on the #openstack-ptg IRC channel. It was last refreshed on {{timestamp}}.</p>

</script>


+ 1
- 9
ptgbot/bot.py View File

@@ -25,7 +25,6 @@ import time
import ssl

import ptgbot.db
import ptgbot.ethercalc

try:
import daemon.pidlockfile as pid_file_module
@@ -183,14 +182,7 @@ def start(configpath):
else:
logging.basicConfig(level=logging.DEBUG)

if 'ethercalc_url' in config:
ethercalc = ptgbot.ethercalc.Ethercalc(
config['ethercalc_url'],
config.get('ethercalc_cells'))
else:
ethercalc = None

db = ptgbot.db.PTGDataBase(config['db_filename'], ethercalc)
db = ptgbot.db.PTGDataBase(config['db_filename'])

bot = PTGBot(config['irc_nick'],
config.get('irc_pass', ''),


+ 2
- 5
ptgbot/db.py View File

@@ -21,12 +21,11 @@ import datetime

class PTGDataBase():

BASE = {'rooms': [], 'ethercalc': [], 'now': {}, 'next': {}, 'colors': {},
BASE = {'rooms': [], 'now': {}, 'next': {}, 'colors': {},
'location': {}}

def __init__(self, filename, ethercalc):
def __init__(self, filename):
self.filename = filename
self.ethercalc = ethercalc
if os.path.isfile(filename):
with open(filename, 'r') as fp:
self.data = json.load(fp)
@@ -87,8 +86,6 @@ class PTGDataBase():
self.save()

def save(self):
if self.ethercalc:
self.data['ethercalc'] = self.ethercalc.load()
timestamp = datetime.datetime.now()
self.data['timestamp'] = '{:%Y-%m-%d %H:%M:%S}'.format(timestamp)
self.data['rooms'] = sorted(self.data['rooms'])


+ 0
- 51
ptgbot/ethercalc.py View File

@@ -1,51 +0,0 @@
#! /usr/bin/env python

# Copyright (c) 2017, Thierry Carrez
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import datetime
import requests


class Ethercalc():

def __init__(self, url, cells_spec):
self.url = url
self.room_line = cells_spec['room_line']
self.time_column = cells_spec['time_column']
time_range = range(cells_spec['time_range'][0],
cells_spec['time_range'][1])
self.times = [str(i) for i in time_range]
self.days = cells_spec['days']

def load(self):
doc = requests.get(self.url).json()
ret = []
today = datetime.datetime.today().weekday()
if len(self.days) <= today:
return ret
for time in self.times:
for room, exclusions in self.days[today].items():
if time not in exclusions:
datacell = room + time
roomcell = room + self.room_line
timecell = self.time_column + time
if doc[datacell]['datavalue']:
msg = '%s, %s: %s' % (
doc[timecell]['datavalue'],
doc[roomcell]['datavalue'],
doc[datacell]['datavalue'],
)
ret.append(msg)
return ret

+ 0
- 1
requirements.txt View File

@@ -1,3 +1,2 @@
irc
python-daemon
requests

Loading…
Cancel
Save