Pulls repairability scores for various devices from iFixit, which are then displayed on a website in a few categories.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

447 lines
15 KiB

  1. import time
  2. import csv
  3. from flask import Flask, make_response, request, render_template, redirect, url_for, send_from_directory #Import flask web server and additional components
  4. app = Flask(__name__)
  5. smartphone_file = "../smartphone.csv"
  6. tablet_file = "../tablet.csv"
  7. laptop_file = "../laptop.csv"
  8. @app.route('/')
  9. def index():
  10. return render_template('index.html')
  11. @app.route('/worst-offenders')
  12. def worst_offenders():
  13. smartphone = []
  14. tablet = []
  15. laptop = []
  16. with open(smartphone_file, 'r', newline='') as file:
  17. bad_smartphone = []
  18. bad_smartphone_2 = []
  19. bad_smartphone_3 = []
  20. reader = csv.reader(file)
  21. for row in reader:
  22. smartphone.append(row)
  23. if row[2] == '1':
  24. message = row[0] + " " + row[1]
  25. bad_smartphone.append(message)
  26. if row[2] == '2':
  27. message = row[0] + " " + row[1]
  28. bad_smartphone_2.append(message)
  29. if row[2] == '3':
  30. message = row[0] + " " + row[1]
  31. bad_smartphone_3.append(message)
  32. with open(tablet_file, 'r', newline='') as file:
  33. bad_tablet = []
  34. bad_tablet_2 = []
  35. bad_tablet_3 = []
  36. reader = csv.reader(file)
  37. for row in reader:
  38. tablet.append(row)
  39. if row[2] == '1':
  40. message = row[0] + " " + row[1]
  41. bad_tablet.append(message)
  42. if row[2] == '2':
  43. message = row[0] + " " + row[1]
  44. bad_tablet_2.append(message)
  45. if row[2] == '3':
  46. message = row[0] + " " + row[1]
  47. bad_tablet_3.append(message)
  48. with open(laptop_file, 'r', newline='') as file:
  49. bad_laptop = []
  50. bad_laptop_2 = []
  51. bad_laptop_3 = []
  52. reader = csv.reader(file)
  53. for row in reader:
  54. laptop.append(row)
  55. if row[2] == '1':
  56. message = row[0] + " " + row[1]
  57. bad_laptop.append(message)
  58. if row[2] == '2':
  59. message = row[0] + " " + row[1]
  60. bad_laptop_2.append(message)
  61. if row[2] == '3':
  62. message = row[0] + " " + row[1]
  63. bad_laptop_3.append(message)
  64. return render_template('worst-offenders.html', smartphone=bad_smartphone, tablet=bad_tablet, laptop=bad_laptop,smartphone_3=bad_smartphone_3, tablet_3=bad_tablet_3, laptop_3=bad_laptop_3, smartphone_2=bad_smartphone_2, tablet_2=bad_tablet_2, laptop_2=bad_laptop_2)
  65. @app.route('/most-repairable')
  66. def most_repairable():
  67. smartphone = []
  68. tablet = []
  69. laptop = []
  70. with open(smartphone_file, 'r', newline='') as file:
  71. good_smartphone = []
  72. good_smartphone_2 = []
  73. good_smartphone_3 = []
  74. reader = csv.reader(file)
  75. for row in reader:
  76. smartphone.append(row)
  77. if row[2] == '10':
  78. message = row[0] + " " + row[1]
  79. good_smartphone.append(message)
  80. if row[2] == '9':
  81. message = row[0] + " " + row[1]
  82. good_smartphone_2.append(message)
  83. if row[2] == '8':
  84. message = row[0] + " " + row[1]
  85. good_smartphone_3.append(message)
  86. with open(tablet_file, 'r', newline='') as file:
  87. good_tablet = []
  88. good_tablet_2 = []
  89. good_tablet_3 = []
  90. reader = csv.reader(file)
  91. for row in reader:
  92. tablet.append(row)
  93. if row[2] == '10':
  94. message = row[0] + " " + row[1]
  95. good_tablet.append(message)
  96. if row[2] == '9':
  97. message = row[0] + " " + row[1]
  98. good_tablet_2.append(message)
  99. if row[2] == '8':
  100. message = row[0] + " " + row[1]
  101. good_tablet_3.append(message)
  102. with open(laptop_file, 'r', newline='') as file:
  103. good_laptop = []
  104. good_laptop_2 = []
  105. good_laptop_3 = []
  106. reader = csv.reader(file)
  107. for row in reader:
  108. laptop.append(row)
  109. if row[2] == '10':
  110. message = row[0] + " " + row[1]
  111. good_laptop.append(message)
  112. if row[2] == '9':
  113. message = row[0] + " " + row[1]
  114. good_laptop_2.append(message)
  115. if row[2] == '8':
  116. message = row[0] + " " + row[1]
  117. good_laptop_3.append(message)
  118. return render_template('most-repairable.html', smartphone=good_smartphone, tablet=good_tablet, laptop=good_laptop,smartphone_3=good_smartphone_3, tablet_3=good_tablet_3, laptop_3=good_laptop_3, smartphone_2=good_smartphone_2, tablet_2=good_tablet_2, laptop_2=good_laptop_2)
  119. @app.route('/one')
  120. def one():
  121. one_smartphone = []
  122. one_tablet = []
  123. one_laptop = []
  124. with open(smartphone_file, 'r', newline='') as file:
  125. smartphone = []
  126. reader = csv.reader(file)
  127. for row in reader:
  128. smartphone.append(row)
  129. if row[2] == '1':
  130. message = row[0] + " " + row[1]
  131. one_smartphone.append(message)
  132. with open(tablet_file, 'r', newline='') as file:
  133. tablet = []
  134. reader = csv.reader(file)
  135. for row in reader:
  136. tablet.append(row)
  137. if row[2] == '1':
  138. message = row[0] + " " + row[1]
  139. one_tablet.append(message)
  140. with open(laptop_file, 'r', newline='') as file:
  141. laptop = []
  142. reader = csv.reader(file)
  143. for row in reader:
  144. laptop.append(row)
  145. if row[2] == '1':
  146. message = row[0] + " " + row[1]
  147. one_laptop.append(message)
  148. return render_template('one.html', smartphone=one_smartphone, tablet=one_tablet, laptop=one_laptop)
  149. @app.route('/two')
  150. def two():
  151. two_smartphone = []
  152. two_tablet = []
  153. two_laptop = []
  154. with open(smartphone_file, 'r', newline='') as file:
  155. smartphone = []
  156. reader = csv.reader(file)
  157. for row in reader:
  158. smartphone.append(row)
  159. if row[2] == '2':
  160. message = row[0] + " " + row[1]
  161. two_smartphone.append(message)
  162. with open(tablet_file, 'r', newline='') as file:
  163. tablet = []
  164. reader = csv.reader(file)
  165. for row in reader:
  166. tablet.append(row)
  167. if row[2] == '2':
  168. message = row[0] + " " + row[1]
  169. two_tablet.append(message)
  170. with open(laptop_file, 'r', newline='') as file:
  171. laptop = []
  172. reader = csv.reader(file)
  173. for row in reader:
  174. laptop.append(row)
  175. if row[2] == '2':
  176. message = row[0] + " " + row[1]
  177. two_laptop.append(message)
  178. return render_template('two.html', smartphone=two_smartphone, tablet=two_tablet, laptop=two_laptop)
  179. @app.route('/three')
  180. def three():
  181. three_smartphone = []
  182. three_tablet = []
  183. three_laptop = []
  184. with open(smartphone_file, 'r', newline='') as file:
  185. smartphone = []
  186. reader = csv.reader(file)
  187. for row in reader:
  188. smartphone.append(row)
  189. if row[2] == '3':
  190. message = row[0] + " " + row[1]
  191. three_smartphone.append(message)
  192. with open(tablet_file, 'r', newline='') as file:
  193. tablet = []
  194. reader = csv.reader(file)
  195. for row in reader:
  196. tablet.append(row)
  197. if row[2] == '3':
  198. message = row[0] + " " + row[1]
  199. three_tablet.append(message)
  200. with open(laptop_file, 'r', newline='') as file:
  201. laptop = []
  202. reader = csv.reader(file)
  203. for row in reader:
  204. laptop.append(row)
  205. if row[2] == '3':
  206. message = row[0] + " " + row[1]
  207. three_laptop.append(message)
  208. return render_template('three.html', smartphone=three_smartphone, tablet=three_tablet, laptop=three_laptop)
  209. @app.route('/four')
  210. def four():
  211. four_smartphone = []
  212. four_tablet = []
  213. four_laptop = []
  214. with open(smartphone_file, 'r', newline='') as file:
  215. smartphone = []
  216. reader = csv.reader(file)
  217. for row in reader:
  218. smartphone.append(row)
  219. if row[2] == '4':
  220. message = row[0] + " " + row[1]
  221. four_smartphone.append(message)
  222. with open(tablet_file, 'r', newline='') as file:
  223. tablet = []
  224. reader = csv.reader(file)
  225. for row in reader:
  226. tablet.append(row)
  227. if row[2] == '4':
  228. message = row[0] + " " + row[1]
  229. four_tablet.append(message)
  230. with open(laptop_file, 'r', newline='') as file:
  231. laptop = []
  232. reader = csv.reader(file)
  233. for row in reader:
  234. laptop.append(row)
  235. if row[2] == '4':
  236. message = row[0] + " " + row[1]
  237. four_laptop.append(message)
  238. return render_template('four.html', smartphone=four_smartphone, tablet=four_tablet, laptop=four_laptop)
  239. @app.route('/five')
  240. def five():
  241. five_smartphone = []
  242. five_tablet = []
  243. five_laptop = []
  244. with open(smartphone_file, 'r', newline='') as file:
  245. smartphone = []
  246. reader = csv.reader(file)
  247. for row in reader:
  248. smartphone.append(row)
  249. if row[2] == '5':
  250. message = row[0] + " " + row[1]
  251. five_smartphone.append(message)
  252. with open(tablet_file, 'r', newline='') as file:
  253. tablet = []
  254. reader = csv.reader(file)
  255. for row in reader:
  256. tablet.append(row)
  257. if row[2] == '5':
  258. message = row[0] + " " + row[1]
  259. five_tablet.append(message)
  260. with open(laptop_file, 'r', newline='') as file:
  261. laptop = []
  262. reader = csv.reader(file)
  263. for row in reader:
  264. laptop.append(row)
  265. if row[2] == '5':
  266. message = row[0] + " " + row[1]
  267. five_laptop.append(message)
  268. return render_template('five.html', smartphone=five_smartphone, tablet=five_tablet, laptop=five_laptop)
  269. @app.route('/six')
  270. def six():
  271. six_smartphone = []
  272. six_tablet = []
  273. six_laptop = []
  274. with open(smartphone_file, 'r', newline='') as file:
  275. smartphone = []
  276. reader = csv.reader(file)
  277. for row in reader:
  278. smartphone.append(row)
  279. if row[2] == '6':
  280. message = row[0] + " " + row[1]
  281. six_smartphone.append(message)
  282. with open(tablet_file, 'r', newline='') as file:
  283. tablet = []
  284. reader = csv.reader(file)
  285. for row in reader:
  286. tablet.append(row)
  287. if row[2] == '6':
  288. message = row[0] + " " + row[1]
  289. six_tablet.append(message)
  290. with open(laptop_file, 'r', newline='') as file:
  291. laptop = []
  292. reader = csv.reader(file)
  293. for row in reader:
  294. laptop.append(row)
  295. if row[2] == '6':
  296. message = row[0] + " " + row[1]
  297. six_laptop.append(message)
  298. return render_template('six.html', smartphone=six_smartphone, tablet=six_tablet, laptop=six_laptop)
  299. @app.route('/seven')
  300. def seven():
  301. seven_smartphone = []
  302. seven_tablet = []
  303. seven_laptop = []
  304. with open(smartphone_file, 'r', newline='') as file:
  305. smartphone = []
  306. reader = csv.reader(file)
  307. for row in reader:
  308. smartphone.append(row)
  309. if row[2] == '7':
  310. message = row[0] + " " + row[1]
  311. seven_smartphone.append(message)
  312. with open(tablet_file, 'r', newline='') as file:
  313. tablet = []
  314. reader = csv.reader(file)
  315. for row in reader:
  316. tablet.append(row)
  317. if row[2] == '7':
  318. message = row[0] + " " + row[1]
  319. seven_tablet.append(message)
  320. with open(laptop_file, 'r', newline='') as file:
  321. laptop = []
  322. reader = csv.reader(file)
  323. for row in reader:
  324. laptop.append(row)
  325. if row[2] == '7':
  326. message = row[0] + " " + row[1]
  327. seven_laptop.append(message)
  328. return render_template('seven.html', smartphone=seven_smartphone, tablet=seven_tablet, laptop=seven_laptop)
  329. @app.route('/eight')
  330. def eight():
  331. eight_smartphone = []
  332. eight_tablet = []
  333. eight_laptop = []
  334. with open(smartphone_file, 'r', newline='') as file:
  335. smartphone = []
  336. reader = csv.reader(file)
  337. for row in reader:
  338. smartphone.append(row)
  339. if row[2] == '8':
  340. message = row[0] + " " + row[1]
  341. eight_smartphone.append(message)
  342. with open(tablet_file, 'r', newline='') as file:
  343. tablet = []
  344. reader = csv.reader(file)
  345. for row in reader:
  346. tablet.append(row)
  347. if row[2] == '8':
  348. message = row[0] + " " + row[1]
  349. eight_tablet.append(message)
  350. with open(laptop_file, 'r', newline='') as file:
  351. laptop = []
  352. reader = csv.reader(file)
  353. for row in reader:
  354. laptop.append(row)
  355. if row[2] == '8':
  356. message = row[0] + " " + row[1]
  357. eight_laptop.append(message)
  358. return render_template('eight.html', smartphone=eight_smartphone, tablet=eight_tablet, laptop=eight_laptop)
  359. @app.route('/nine')
  360. def nine():
  361. nine_smartphone = []
  362. nine_tablet = []
  363. nine_laptop = []
  364. with open(smartphone_file, 'r', newline='') as file:
  365. smartphone = []
  366. reader = csv.reader(file)
  367. for row in reader:
  368. smartphone.append(row)
  369. if row[2] == '9':
  370. message = row[0] + " " + row[1]
  371. nine_smartphone.append(message)
  372. with open(tablet_file, 'r', newline='') as file:
  373. tablet = []
  374. reader = csv.reader(file)
  375. for row in reader:
  376. tablet.append(row)
  377. if row[2] == '9':
  378. message = row[0] + " " + row[1]
  379. nine_tablet.append(message)
  380. with open(laptop_file, 'r', newline='') as file:
  381. laptop = []
  382. reader = csv.reader(file)
  383. for row in reader:
  384. laptop.append(row)
  385. if row[2] == '9':
  386. message = row[0] + " " + row[1]
  387. nine_laptop.append(message)
  388. return render_template('nine.html', smartphone=nine_smartphone, tablet=nine_tablet, laptop=nine_laptop)
  389. @app.route('/ten')
  390. def ten():
  391. ten_smartphone = []
  392. ten_tablet = []
  393. ten_laptop = []
  394. with open(smartphone_file, 'r', newline='') as file:
  395. smartphone = []
  396. reader = csv.reader(file)
  397. for row in reader:
  398. smartphone.append(row)
  399. if row[2] == '10':
  400. message = row[0] + " " + row[1]
  401. ten_smartphone.append(message)
  402. with open(tablet_file, 'r', newline='') as file:
  403. tablet = []
  404. reader = csv.reader(file)
  405. for row in reader:
  406. tablet.append(row)
  407. if row[2] == '10':
  408. message = row[0] + " " + row[1]
  409. ten_tablet.append(message)
  410. with open(laptop_file, 'r', newline='') as file:
  411. laptop = []
  412. reader = csv.reader(file)
  413. for row in reader:
  414. laptop.append(row)
  415. if row[2] == '10':
  416. message = row[0] + " " + row[1]
  417. ten_laptop.append(message)
  418. return render_template('ten.html', smartphone=ten_smartphone, tablet=ten_tablet, laptop=ten_laptop)
  419. if __name__ == '__main__':
  420. from waitress import serve
  421. serve(app, host="0.0.0.0", port=1235)