Guest User

Untitled

a guest
Sep 30th, 2012
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 15.12 KB | None | 0 0
  1. import urllib2
  2. from xml.dom.minidom import parseString
  3.  
  4. BAUfolders = ["620550", "617821", "616189", "617927", "617520", "619979", "621361", "619707", "614439", "619460", "618516", "617911", "618554", "622284", "619070", "617827", "619839", "621155", "618904", "620416", "617856", "621071", "621253", "619112", "623110", "621126", "616548", "623342", "617534", "617773", "619362"]
  5. Neofolders = ["601868", "610116", "601886", "601869", "616938"]
  6. UKoEfolders = ["622811", "622749"]
  7. MLPMAfolders = ["622853", "621352", "621542", "619899"]
  8.  
  9. BAUTotal = 0
  10. BAUWU = 0
  11. BAUPPD = 0
  12. BAUMem = 0
  13. NeoTotal = 0
  14. NeoWU = 0
  15. NeoPPD = 0
  16. NeoMem = 0
  17. UKoETotal = 0
  18. UKoEWU = 0
  19. UKoEPPD = 0
  20. UKoEMem = 0
  21. MLPMATotal = 0
  22. MLPMAWU = 0
  23. MLPMAPPD = 0
  24. MLPMAMem = 0
  25.  
  26. outputBAU = ""
  27. outputNeo = ""
  28. outputUKoE = ""
  29. outputMLPMA = ""
  30.  
  31. for user in BAUfolders:
  32.     file = urllib2.urlopen("http://folding.extremeoverclocking.com/xml/user_summary.php?u=" +user)
  33.     data = file.read()
  34.     file.close()
  35.     dom = parseString(data)
  36.     userName = dom.getElementsByTagName("User_Name")[0].toxml()
  37.     userName = userName.replace("<User_Name>","").replace("</User_Name>","")
  38.     print "Finished downloading " +userName
  39.     userPoints = dom.getElementsByTagName("Points")[1].toxml()
  40.     userPoints = userPoints.replace("<Points>","").replace("</Points>","")
  41.     userPoints = int(userPoints)
  42.     BAUTotal += userPoints
  43.     PointsCom = '{:,d}'.format(userPoints)
  44.     PPD = dom.getElementsByTagName("Points_24hr_Avg")[1].toxml()
  45.     PPD = PPD.replace("<Points_24hr_Avg>","").replace("</Points_24hr_Avg>","")
  46.     PPD = int(PPD)
  47.     BAUPPD += PPD
  48.     PPDCom = '{:,d}'.format(PPD)
  49.     WUs = dom.getElementsByTagName("WUs")[1].toxml()
  50.     WUs = WUs.replace("<WUs>","").replace("</WUs>","")
  51.     WUs = int(WUs)
  52.     BAUWU += WUs
  53.     BAUMem += 1
  54.     WUsCom = '{:,d}'.format(WUs)
  55.     if PPD == 0:        
  56.         outputBAU += "<tr class='inactive'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  57.     elif PPD > 6000:
  58.         outputBAU += "<tr class='poweruser'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  59.     elif PPD > 3000 and PPD < 6001:
  60.         outputBAU += "<tr class='normal'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  61.     else:
  62.         outputBAU += "<tr><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  63.  
  64. BAUTotalCom = '{:,d}'.format(BAUTotal)
  65. BAUPPDTotCom = '{:,d}'.format(BAUPPD)
  66. BAUWUTotCom = '{:,d}'.format(BAUWU)
  67.  
  68.  
  69. for user in Neofolders:
  70.     file = urllib2.urlopen("http://folding.extremeoverclocking.com/xml/user_summary.php?u=" +user)
  71.     data = file.read()
  72.     file.close()
  73.     dom = parseString(data)
  74.     userName = dom.getElementsByTagName("User_Name")[0].toxml()
  75.     userName = userName.replace("<User_Name>","").replace("</User_Name>","")
  76.     print "Finished downloading " +userName
  77.     userPoints = dom.getElementsByTagName("Points")[1].toxml()
  78.     userPoints = userPoints.replace("<Points>","").replace("</Points>","")
  79.     userPoints = int(userPoints)
  80.     NeoTotal += userPoints
  81.     PointsCom = '{:,d}'.format(userPoints)
  82.     PPD = dom.getElementsByTagName("Points_24hr_Avg")[1].toxml()
  83.     PPD = PPD.replace("<Points_24hr_Avg>","").replace("</Points_24hr_Avg>","")
  84.     PPD = int(PPD)
  85.     NeoPPD += PPD
  86.     PPDCom = '{:,d}'.format(PPD)
  87.     WUs = dom.getElementsByTagName("WUs")[1].toxml()
  88.     WUs = WUs.replace("<WUs>","").replace("</WUs>","")
  89.     WUs = int(WUs)
  90.     NeoWU += WUs
  91.     NeoMem += 1
  92.     WUsCom = '{:,d}'.format(WUs)
  93.     if PPD == 0:        
  94.         outputNeo += "<tr class='inactive'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  95.     elif PPD > 6000:
  96.         outputNeo += "<tr class='poweruser'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  97.     elif PPD > 3000 and PPD < 6001:
  98.         outputNeo += "<tr class='normal'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  99.     else:
  100.         outputNeo += "<tr><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  101.  
  102. NeoTotalCom = '{:,d}'.format(NeoTotal)
  103. NeoPPDTotCom = '{:,d}'.format(NeoPPD)
  104. NeoWUTotCom = '{:,d}'.format(NeoWU)
  105.  
  106.  
  107. for user in UKoEfolders:
  108.     file = urllib2.urlopen("http://folding.extremeoverclocking.com/xml/user_summary.php?u=" +user)
  109.     data = file.read()
  110.     file.close()
  111.     dom = parseString(data)
  112.     userName = dom.getElementsByTagName("User_Name")[0].toxml()
  113.     userName = userName.replace("<User_Name>","").replace("</User_Name>","")
  114.     print "Finished downloading " +userName
  115.     userPoints = dom.getElementsByTagName("Points")[1].toxml()
  116.     userPoints = userPoints.replace("<Points>","").replace("</Points>","")
  117.     userPoints = int(userPoints)
  118.     UKoETotal += userPoints
  119.     PointsCom = '{:,d}'.format(userPoints)
  120.     PPD = dom.getElementsByTagName("Points_24hr_Avg")[1].toxml()
  121.     PPD = PPD.replace("<Points_24hr_Avg>","").replace("</Points_24hr_Avg>","")
  122.     PPD = int(PPD)
  123.     UKoEPPD += PPD
  124.     PPDCom = '{:,d}'.format(PPD)
  125.     WUs = dom.getElementsByTagName("WUs")[1].toxml()
  126.     WUs = WUs.replace("<WUs>","").replace("</WUs>","")
  127.     WUs = int(WUs)
  128.     UKoEWU += WUs
  129.     UKoEMem += 1
  130.     WUsCom = '{:,d}'.format(WUs)
  131.     if PPD == 0:        
  132.         outputUKoE += "<tr class='inactive'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  133.     elif PPD > 6000:
  134.         outputUKoE += "<tr class='poweruser'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  135.     elif PPD > 3000 and PPD < 6001:
  136.         outputUKoE += "<tr class='normal'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  137.     else:
  138.         outputUKoE += "<tr><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  139.  
  140. UKoETotalCom = '{:,d}'.format(UKoETotal)
  141. UKoEPPDTotCom = '{:,d}'.format(UKoEPPD)
  142. UKoEWUTotCom = '{:,d}'.format(UKoEWU)
  143.  
  144.  
  145. for user in MLPMAfolders:
  146.     file = urllib2.urlopen("http://folding.extremeoverclocking.com/xml/user_summary.php?u=" +user)
  147.     data = file.read()
  148.     file.close()
  149.     dom = parseString(data)
  150.     userName = dom.getElementsByTagName("User_Name")[0].toxml()
  151.     userName = userName.replace("<User_Name>","").replace("</User_Name>","")
  152.     print "Finished downloading " +userName
  153.     userPoints = dom.getElementsByTagName("Points")[1].toxml()
  154.     userPoints = userPoints.replace("<Points>","").replace("</Points>","")
  155.     userPoints = int(userPoints)
  156.     MLPMATotal += userPoints
  157.     PointsCom = '{:,d}'.format(userPoints)
  158.     PPD = dom.getElementsByTagName("Points_24hr_Avg")[1].toxml()
  159.     PPD = PPD.replace("<Points_24hr_Avg>","").replace("</Points_24hr_Avg>","")
  160.     PPD = int(PPD)
  161.     MLPMAPPD += PPD
  162.     PPDCom = '{:,d}'.format(PPD)
  163.     WUs = dom.getElementsByTagName("WUs")[1].toxml()
  164.     WUs = WUs.replace("<WUs>","").replace("</WUs>","")
  165.     WUs = int(WUs)
  166.     MLPMAWU += WUs
  167.     MLPMAMem += 1
  168.     WUsCom = '{:,d}'.format(WUs)
  169.     if PPD == 0:        
  170.         outputMLPMA += "<tr class='inactive'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  171.     elif PPD > 6000:
  172.         outputMLPMA += "<tr class='poweruser'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  173.     elif PPD > 3000 and PPD < 6001:
  174.         outputMLPMA += "<tr class='normal'><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  175.     else:
  176.         outputMLPMA += "<tr><td><a href='http://folding.extremeoverclocking.com/user_summary.php?s=&u=" +user +"'>" +userName +"</a></td><td>" +PointsCom +"</td><td>" +PPDCom +"</td><td>" +WUsCom +"</td></tr>\n"
  177.  
  178. MLPMATotalCom = '{:,d}'.format(MLPMATotal)
  179. MLPMAPPDTotCom = '{:,d}'.format(MLPMAPPD)
  180. MLPMAWUTotCom = '{:,d}'.format(MLPMAWU)
  181.  
  182. #CREATE LEADER TABLE
  183. outputTotal = ""
  184. outputTotal += "<tr><td>Neoseeker</td><td>" +str(NeoMem) +"</td><td>" +NeoTotalCom +"</td><td>" +NeoPPDTotCom +"</td></tr>\n"
  185. outputTotal += "<tr><td>Bronies Australia</td><td>" +str(BAUMem) +"</td><td>" +BAUTotalCom +"</td><td>" +BAUPPDTotCom +"</td></tr>\n"
  186. outputTotal += "<tr><td>UK of Equestria</td><td>" +str(UKoEMem) +"</td><td>" +UKoETotalCom +"</td><td>" +UKoEPPDTotCom +"</td></tr>\n"
  187. outputTotal += "<tr><td>MLP Music Archive</td><td>" +str(MLPMAMem) +"</td><td>" +MLPMATotalCom +"</td><td>" +MLPMAPPDTotCom +"</td></tr>\n"
  188.  
  189. #OUTPUT COMBINATIONS
  190.  
  191. output = """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  192. <html xmlns="http://www.w3.org/1999/xhtml">
  193. <head>
  194. <link rel=stylesheet href="style.css" type="text/css">
  195. <link rel="icon" type="image/png" href="Images/favicon.png">
  196. <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
  197. <title>Brony@Home - Bronies Australia Subteam Stats</title>
  198. <script src="sortable.js"></script>
  199. <script type="text/javascript">
  200. var _gaq = _gaq || [];
  201. _gaq.push(['_setAccount', 'UA-33681696-1']);
  202. _gaq.push(['_setDomainName', 'bronyathome.org']);
  203. _gaq.push(['_trackPageview']);
  204. (function() {
  205. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  206. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  207. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  208. })();
  209. </script>
  210. <script type="text/javascript">
  211. var _gaq = _gaq || [];
  212. _gaq.push(['_setAccount', 'UA-33628138-1']);
  213. _gaq.push(['_trackPageview']);
  214. (function() {
  215. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  216. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  217. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  218. })();
  219. </script>
  220. </head>
  221. <body>
  222.  
  223. <div class=top>
  224. <a href="index.html"><img src="Images/BAHsmall.png" /></a>
  225. </div>
  226. <br />
  227. <div id=navbarwrapper>
  228. <div id=navbar>
  229. | <a href=index.html class="navbar">Home</a> |
  230. <a href=about.html class="navbar">About</a> |
  231. <a href=faq.html class="navbar">FAQ</a> |
  232. <a href=competitions.html class="navbar">Competitions</a> |
  233. <a href=support.html class="navbar">Support</a> |
  234. <a href=stats.html class="navbar">Stats</a> |
  235. <a href=thanks.html class="navbar">Special Thanks</a> |
  236. <a href=contact.html class="navbar">Contact</a> |
  237. </div>
  238. </div>
  239. <br />
  240. <div class=mainbody>
  241. <h2>Brony@Home Sub-Team Stats</h2>
  242. <br />
  243. The tables below show statistics for sub-teams, where several members are grouped together by the community they are in. If you wish to be added to a group, or have sufficient members in a community to create a sub-team, contact Sellyme *insert contact thing here*
  244. <br />
  245. <br />
  246. <div class=MidAlign>
  247. <div class=table>
  248. <h3>Sub-Teams Leaderboard</h3>
  249. <table class=sortable>
  250. <thead>
  251. <tr><th>Sub-Team</th><th>Members</th><th>Points</th><th>PPD</th></tr>
  252. </thead>
  253. <tbody>"""
  254.  
  255. output += outputTotal
  256.  
  257. output += """
  258. </tbody>
  259. </table>
  260. </div>
  261. <br /><br />
  262. <div class=table>
  263. <a name=bau></a><h3>Bronies Australia</h3>
  264. <table class=sortable>
  265. <thead>
  266. <tr><th>Username</th><th>Points</th><th>PPD</th><th>WUs</th></tr>
  267. </thead>
  268. <tbody>
  269. """
  270.  
  271. output += outputBAU
  272.  
  273. output += """
  274. </tbody>
  275. </table>
  276. </div>
  277.  
  278. <div class=table>
  279. <h3>Neoseeker</h3>
  280. <table class=sortable>
  281. <thead>
  282. <tr><th>Username</th><th>Points</th><th>PPD</th><th>WUs</th></tr>
  283. </thead>
  284. <tbody>
  285. """
  286.  
  287. output += outputNeo
  288.  
  289. output += """</tbody>
  290. </table>
  291. </div>
  292.  
  293. <div class=table>
  294. <h3>UK of Equestria</h3>
  295. <table class=sortable>
  296. <thead>
  297. <tr><th>Username</th><th>Points</th><th>PPD</th><th>WUs</th></tr>
  298. </thead>
  299. <tbody>
  300. """
  301.  
  302. output += outputUKoE
  303.  
  304. output += """</tbody>
  305. </table>
  306. </div>
  307.  
  308. <div class=table>
  309. <h3>MLP Music Archive</h3>
  310. <table class=sortable>
  311. <thead>
  312. <tr><th>Username</th><th>Points</th><th>PPD</th><th>WUs</th></tr>
  313. </thead>
  314. <tbody>
  315. """
  316.  
  317. output += outputMLPMA
  318.  
  319. output += """</tbody>
  320. </table>
  321. </div>
  322. </div>
  323. <br />
  324. To do:
  325. <br/>
  326. Script automatic uploading
  327. <br/>
  328. Improve content under first header
  329. <br/>
  330. Add some kind of contact/communication method for adding new members/teams
  331. </div>
  332. <br />
  333. <div class=bottom>
  334. <a href="http://www.tumblr.com/share" target="_blank" title="Share on Tumblr" style="display:inline-block; text-indent:-9999px; overflow:hidden; width:20px; height:20px; background:url('http://platform.tumblr.com/v1/share_4.png') top left no-repeat transparent;"><img src="Images/Tuicon.png" /></a>
  335. <a href=http://www.facebook.com/share.php?u=http://www.bronyathome.org target="_blank"><img src="Images/FBicon.png" /></a>
  336. <a href=http://twitter.com/share?url=http://www.bronyathome.org&lang=en target="_blank"><img src="Images/Ticon.png" /></a>
  337. <a href=http://reddit.com/submit?url=http://www.bronyathome.org&title=Brony%40Home target="_blank"><img src="Images/Ricon.png" /></a>
  338. <a href=https://plusone.google.com/_/+1/confirm?hl=en&url=http://www.bronyathome.org/  target="_blank"><img src="Images/Gicon.png" /></a>
  339. </div>
  340. <br />
  341. </body>
  342. </html>
  343. """
  344.  
  345. f = open("Subteams\subteams.html", "w")
  346. f.write(output)
  347. f.close()
  348.  
  349.  
  350. import paramiko
  351. host = "neonshift1.neonshift.com"                    #hard-coded
  352. port = 19582
  353. transport = paramiko.Transport((host, port))
  354.  
  355. password = "hunter2"                #hard-coded
  356. username = "hiigaran"                #hard-coded
  357. transport.connect(username = username, password = password)
  358.  
  359. sftp = paramiko.SFTPClient.from_transport(transport)
  360.  
  361. import sys
  362. path = '/var/www/org.bronyathome/subteams.html'    #hard-coded
  363. localpath = "Subteams\subteams.html"
  364. sftp.put(localpath, path)
  365.  
  366. sftp.close()
  367. transport.close()
  368. print 'Upload done.'
  369.  
  370.  
  371.  
  372. raw_input('Press Enter to exit')
Add Comment
Please, Sign In to add comment