Advertisement
Guest User

Untitled

a guest
Aug 18th, 2015
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import json
  4. import urllib2
  5. import sys
  6.  
  7.  
  8. dirs = [
  9. 'levels/doom/0-9/',
  10. 'levels/doom/a-c/',
  11. 'levels/doom/d-f/',
  12. 'levels/doom/g-i/',
  13. 'levels/doom/j-l/',
  14. 'levels/doom/m-o/',
  15. 'levels/doom/megawads/',
  16. 'levels/doom/p-r/',
  17. 'levels/doom/s-u/',
  18. 'levels/doom/v-z/',
  19. 'levels/doom/Ports/0-9/',
  20. 'levels/doom/Ports/a-c/',
  21. 'levels/doom/Ports/d-f/',
  22. 'levels/doom/Ports/g-i/',
  23. 'levels/doom/Ports/j-l/',
  24. 'levels/doom/Ports/m-o/',
  25. 'levels/doom/Ports/megawads/',
  26. 'levels/doom/Ports/p-r/',
  27. 'levels/doom/Ports/s-u/',
  28. 'levels/doom/Ports/v-z/',
  29. 'levels/doom2/0-9/',
  30. 'levels/doom2/a-c/',
  31. 'levels/doom2/d-f/',
  32. 'levels/doom2/g-i/',
  33. 'levels/doom2/j-l/',
  34. 'levels/doom2/m-o/',
  35. 'levels/doom2/megawads/',
  36. 'levels/doom2/p-r/',
  37. 'levels/doom2/s-u/',
  38. 'levels/doom2/v-z/',
  39. 'levels/doom2/Ports/0-9/',
  40. 'levels/doom2/Ports/a-c/',
  41. 'levels/doom2/Ports/d-f/',
  42. 'levels/doom2/Ports/g-i/',
  43. 'levels/doom2/Ports/j-l/',
  44. 'levels/doom2/Ports/m-o/',
  45. 'levels/doom2/Ports/megawads/',
  46. 'levels/doom2/Ports/p-r/',
  47. 'levels/doom2/Ports/s-u/',
  48. 'levels/doom2/Ports/v-z/',
  49. 'levels/hacx/',
  50. 'levels/heretic/0-9/',
  51. 'levels/heretic/a-c/',
  52. 'levels/heretic/d-f/',
  53. 'levels/heretic/g-i/',
  54. 'levels/heretic/j-l/',
  55. 'levels/heretic/m-o/',
  56. 'levels/heretic/p-r/',
  57. 'levels/heretic/Ports/',
  58. 'levels/heretic/s-u/',
  59. 'levels/heretic/v-z/',
  60. 'levels/hexen/0-9/',
  61. 'levels/hexen/a-c/',
  62. 'levels/hexen/d-f/',
  63. 'levels/hexen/g-i/',
  64. 'levels/hexen/j-l/',
  65. 'levels/hexen/m-o/',
  66. 'levels/hexen/p-r/',
  67. 'levels/hexen/s-u/',
  68. 'levels/hexen/v-z/',
  69. 'levels/strife/',
  70. 'themes/aliens/',
  71. 'themes/aod/',
  72. 'themes/apt/',
  73. 'themes/barney/',
  74. 'themes/batman/',
  75. 'themes/chook/',
  76. 'themes/DAC/dac2005/',
  77. 'themes/drwho/',
  78. 'themes/hacx/',
  79. 'themes/hr/',
  80. 'themes/marines/',
  81. 'themes/mm/',
  82. 'themes/omf/',
  83. 'themes/pacman/',
  84. 'themes/simpsons/',
  85. 'themes/sonic/',
  86. 'themes/startrek/',
  87. 'themes/starwars/',
  88. 'themes/tab/',
  89. 'themes/TeamTNT/bloodlands/',
  90. 'themes/TeamTNT/boom/',
  91. 'themes/TeamTNT/daedalus/',
  92. 'themes/TeamTNT/doom2000/',
  93. 'themes/TeamTNT/ed4_rfo/',
  94. 'themes/TeamTNT/eternal/',
  95. 'themes/TeamTNT/finaldoom/',
  96. 'themes/TeamTNT/grievance/',
  97. 'themes/TeamTNT/icarus/',
  98. 'themes/TeamTNT/pursuit/',
  99. 'themes/TeamTNT/reclamation/',
  100. 'themes/TeamTNT/return/',
  101. 'themes/twc/',
  102. 'themes/university/',
  103. 'themes/wolf3d/',
  104. 'themes/wtf/',
  105. 'themes/xmas/'
  106. ]
  107.  
  108. def get_url(path):
  109. return 'http://www.doomworld.com/idgames/api/api.php?action=getfiles&name=' + path + '&out=json'
  110.  
  111. def get_json(url):
  112. sys.stderr.write(url + '\n')
  113. s = urllib2.urlopen(url)
  114. return json.loads(s.read())
  115.  
  116. total_files = []
  117.  
  118. for path in dirs:
  119. j = get_json(get_url(path))
  120. files = j['content']['file']
  121. if isinstance(files, dict): # Doomworld API turns single-item arrays into simple items
  122. files = [files]
  123. total_files += files
  124.  
  125. total_files.sort(key=lambda x: -x['votes'])
  126.  
  127. for file in total_files:
  128. print file['id'], file['dir'] + file['filename'], file['rating']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement