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.

124 lines
4.8 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 = "/home/ravi/Documents/Git/iFixit-Repairability-Dashboard/smartphone.csv"
  6. tablet_file = "/home/ravi/Documents/Git/iFixit-Repairability-Dashboard/tablet.csv"
  7. laptop_file = "/home/ravi/Documents/Git/iFixit-Repairability-Dashboard/laptop.csv"
  8. @app.route('/')
  9. def index():
  10. smartphone = []
  11. tablet = []
  12. laptop = []
  13. with open(smartphone_file, 'r', newline='') as file:
  14. bad_smartphone = []
  15. bad_smartphone_2 = []
  16. bad_smartphone_3 = []
  17. reader = csv.reader(file)
  18. for row in reader:
  19. smartphone.append(row)
  20. if row[2] == '1':
  21. message = row[0] + " " + row[1]
  22. bad_smartphone.append(message)
  23. if row[2] == '2':
  24. message = row[0] + " " + row[1]
  25. bad_smartphone_2.append(message)
  26. if row[2] == '3':
  27. message = row[0] + " " + row[1]
  28. bad_smartphone_3.append(message)
  29. with open(tablet_file, 'r', newline='') as file:
  30. bad_tablet = []
  31. bad_tablet_2 = []
  32. bad_tablet_3 = []
  33. reader = csv.reader(file)
  34. for row in reader:
  35. tablet.append(row)
  36. if row[2] == '1':
  37. message = row[0] + " " + row[1]
  38. bad_tablet.append(message)
  39. if row[2] == '2':
  40. message = row[0] + " " + row[1]
  41. bad_tablet_2.append(message)
  42. if row[2] == '3':
  43. message = row[0] + " " + row[1]
  44. bad_tablet_3.append(message)
  45. with open(laptop_file, 'r', newline='') as file:
  46. bad_laptop = []
  47. bad_laptop_2 = []
  48. bad_laptop_3 = []
  49. reader = csv.reader(file)
  50. for row in reader:
  51. laptop.append(row)
  52. if row[2] == '1':
  53. message = row[0] + " " + row[1]
  54. bad_laptop.append(message)
  55. if row[2] == '2':
  56. message = row[0] + " " + row[1]
  57. bad_laptop_2.append(message)
  58. if row[2] == '3':
  59. message = row[0] + " " + row[1]
  60. bad_laptop_3.append(message)
  61. return render_template('index.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)
  62. @app.route('/most-repairable')
  63. def most_repairable():
  64. smartphone = []
  65. tablet = []
  66. laptop = []
  67. with open(smartphone_file, 'r', newline='') as file:
  68. good_smartphone = []
  69. good_smartphone_2 = []
  70. good_smartphone_3 = []
  71. reader = csv.reader(file)
  72. for row in reader:
  73. smartphone.append(row)
  74. if row[2] == '10':
  75. message = row[0] + " " + row[1]
  76. good_smartphone.append(message)
  77. if row[2] == '9':
  78. message = row[0] + " " + row[1]
  79. good_smartphone_2.append(message)
  80. if row[2] == '8':
  81. message = row[0] + " " + row[1]
  82. good_smartphone_3.append(message)
  83. with open(tablet_file, 'r', newline='') as file:
  84. good_tablet = []
  85. good_tablet_2 = []
  86. good_tablet_3 = []
  87. reader = csv.reader(file)
  88. for row in reader:
  89. tablet.append(row)
  90. if row[2] == '10':
  91. message = row[0] + " " + row[1]
  92. good_tablet.append(message)
  93. if row[2] == '9':
  94. message = row[0] + " " + row[1]
  95. good_tablet_2.append(message)
  96. if row[2] == '8':
  97. message = row[0] + " " + row[1]
  98. good_tablet_3.append(message)
  99. with open(laptop_file, 'r', newline='') as file:
  100. good_laptop = []
  101. good_laptop_2 = []
  102. good_laptop_3 = []
  103. reader = csv.reader(file)
  104. for row in reader:
  105. laptop.append(row)
  106. if row[2] == '10':
  107. message = row[0] + " " + row[1]
  108. good_laptop.append(message)
  109. if row[2] == '9':
  110. message = row[0] + " " + row[1]
  111. good_laptop_2.append(message)
  112. if row[2] == '8':
  113. message = row[0] + " " + row[1]
  114. good_laptop_3.append(message)
  115. 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)
  116. if __name__ == '__main__':
  117. app.run(host='0.0.0.0', port=1235) #Run the webserver2