2019-03-24 17:36:16 +00:00
#!/usr/bin/env python3
import subprocess , json , os.path , requests
from bs4 import BeautifulSoup as bs
headers = {
'Accept-Encoding' : 'gzip, deflate, sdch' ,
'Accept-Language' : 'en-US,en;q=0.8' ,
'Upgrade-Insecure-Requests' : '1' ,
'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' ,
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ,
'Cache-Control' : 'max-age=0' ,
'Connection' : 'keep-alive' ,
}
tdp = {}
2019-03-24 17:41:14 +00:00
tdp [ "name" ] = "thunix"
tdp [ "url" ] = "https://www.thunix.net"
2019-11-04 15:53:47 +00:00
tdp [ "signup_url" ] = tdp [ "url" ] + "/signup"
2019-03-24 17:36:16 +00:00
users = subprocess . check_output ([ "/usr/bin/members" , "tilde" ]) . decode ( 'ascii' ) . split ()
users . sort ()
tdp [ "user_count" ] = len ( users ) - 1
tdp [ "want_users" ] = True
2019-03-24 17:41:14 +00:00
tdp [ "admin_email" ] = "root@thunix.net"
tdp [ "description" ] = "Thunix is a community, centered around access to a public *nix system. Thunix offers shell accounts with complete set of programming tools, and follows a continuous integration-continuous deployment of system configuration."
2019-03-24 17:36:16 +00:00
tdpusers = []
for user in users :
if user == "anton" :
continue
tdpuser = dict ( username = user )
2019-03-24 17:41:14 +00:00
title = bs ( requests . get ( "https://www.thunix.net/~ {} " . format ( user )) . text , "lxml" ) . title
2019-03-24 17:36:16 +00:00
if title is None :
title = "No title"
else :
title = title . text
tdpuser [ "title" ] = title
if os . path . exists ( os . path . expanduser ( "~ {} /public_html/index.html" . format ( user ))):
tdpuser [ "mtime" ] = os . path . getmtime ( os . path . expanduser ( "~ {} /public_html/index.html" . format ( user )))
elif os . path . exists ( os . path . expanduser ( "~ {} /public_html/index.htm" . format ( user ))):
tdpuser [ "mtime" ] = os . path . getmtime ( os . path . expanduser ( "~ {} /public_html/index.htm" . format ( user )))
elif os . path . exists ( os . path . expanduser ( "~ {} /public_html/index.php" . format ( user ))):
tdpuser [ "mtime" ] = os . path . getmtime ( os . path . expanduser ( "~ {} /public_html/index.php" . format ( user )))
tdpusers . append ( tdpuser )
tdp [ "users" ] = tdpusers
with open ( "tilde.json" , "w" ) as f :
json . dump ( tdp , f )