Browse Source

python3, blacklist

pull/14/head
Ben Harris 2 years ago
parent
commit
a4242090b0
Signed by untrusted user: ben GPG Key ID: 4E0AF802FFF7960C
  1. 1
      .gitignore
  2. 2
      README.md
  3. 2
      blacklist.example
  4. 12
      gen_stats

1
.gitignore

@ -1,2 +1,3 @@
stats.json
vendor/
blacklist

2
README.md

@ -19,3 +19,5 @@ stop by irc and say hi!
`<bind address="127.0.0.1" port="8081" type="httpd">`
4. add gen_stats to a crontab for a user that can write in the webroot:
`* * * * * /var/www/tilde.chat/gen_stats`
5. `cp blacklist{.example,}`
6. `vim blacklist` - stats gen will fail if this is missing

2
blacklist.example

@ -0,0 +1,2 @@
#mysecrets
#dontlookhere

12
gen_stats

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
import requests, json
import xml.etree.ElementTree as xml
@ -8,6 +8,8 @@ out = {}
d = xml.fromstring(r.text)
assert d.tag == "inspircdstats"
with open("blacklist", "r") as f:
BLACKLIST = f.read().splitlines()
def define(name, xps, vfilter=lambda x: x):
global out
@ -17,7 +19,7 @@ def define(name, xps, vfilter=lambda x: x):
define("usercount", "./general/usercount", int)
define("channelcount", "./general/channelcount", int)
schannels = d.findall("./channellist/channel")
# print(len(schannels))
channels = []
for schannel in schannels:
channel = dict(
@ -35,15 +37,17 @@ for schannel in schannels:
and channel["topic"] != "No topic set"
):
channel["topic"] = "Topic hidden"
if channel["name"] == "#secret-sudoers":
# no stat output for #secret-sudoers! it's a sekrit club of the ~team sysadmins!
if channel["name"] in BLACKLIST:
# skip channels in the blacklist
continue
channel["webchatlink"] = "https://web.tilde.chat/?join=" + channel["name"].lstrip(
"#"
)
channels.append(channel)
channels.sort(key=lambda x: x["name"].lower())
out["channels"] = channels
# print([x.text for x in d.findall("./channellist/channel/channeltopic/topictext")])
with open("/var/www/tilde.chat/stats.json", "w") as f:
json.dump(out, f)
Loading…
Cancel
Save