gen_designer_report.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from typing import NoReturn
  2. import time
  3. import dataset
  4. import codecs
  5. import sys
  6. import os
  7. import time
  8. import re
  9. import datetime
  10. import dataset
  11. import jinja2
  12. def gen_report():
  13. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
  14. fname=os.path.abspath(__file__)
  15. elmts=fname.split(os.path.sep)
  16. path2=os.path.sep.join(elmts[0:-1])
  17. keysdir=path2+os.path.sep+'static'+os.path.sep
  18. print(keysdir)
  19. templateLoader = jinja2.FileSystemLoader(searchpath=keysdir)
  20. templateEnv = jinja2.Environment(loader=templateLoader)
  21. TEMPLATE_FILE = "designer.tmpl"
  22. template = templateEnv.get_template(TEMPLATE_FILE)
  23. repeat={}
  24. displaydata=[]
  25. cursor=db.query('SELECT designer,searchome,c_100,hhh,dt FROM hhh.rank_summary order by dt desc,hhh asc;')
  26. for c in cursor:
  27. designer=c['designer']
  28. if repeat.get(designer) is None:
  29. repeat[designer]=1
  30. hhh=c['hhh']
  31. c_100=c['c_100']
  32. searchome=c['searchome']
  33. hhh_label='<a href="https://www.google.com/search?q='+designer+'"><button class="btn btn-primary">幸福空間 <span class="badge">'+str(c['hhh'])+'</span> </button></a>'
  34. if c_100==-1:
  35. c100_label='<span>&nbsp;</span>'
  36. else:
  37. c100_label='<a href="https://www.google.com/search?q='+designer+'"><button class="btn btn-danger">100設計 <span class="badge">'+str(c['c_100'])+'</span> </button></a>'
  38. if searchome==-1:
  39. sch_label='<span>&nbsp;</span>'
  40. else:
  41. sch_label='<a href="https://www.google.com/search?q='+designer+'"><button class="btn btn-danger">設計家 <span class="badge">'+str(c['searchome'])+'</span> </button></a>'
  42. local_lst=[]
  43. if hhh > 0:
  44. local_lst.append(('hhh',hhh))
  45. if searchome > 0:
  46. local_lst.append(('searchome',searchome))
  47. if c_100 > 0:
  48. local_lst.append(('c_100',c_100))
  49. sorted_by_second = sorted(local_lst, key=lambda tup: tup[1])
  50. print(sorted_by_second)
  51. first=None
  52. second=None
  53. slen=len(sorted_by_second)
  54. results=[]
  55. for l in sorted_by_second:
  56. if l[0]=='hhh':
  57. results.append(hhh_label)
  58. if l[0]=='searchome':
  59. results.append(sch_label)
  60. if l[0]=='c_100':
  61. results.append(c100_label)
  62. if slen==1:
  63. results.append('<span>&nbsp;</span>')
  64. if len(results)==1:
  65. first=results[0]
  66. if len(results)>=1:
  67. first=results[0]
  68. second=results[1]
  69. if len(results)<=0:
  70. first=''
  71. secont=''
  72. displaydata.append({'designer':designer,'first':first,'second':second,'dt':c['dt']})
  73. outputText = template.render(displaydata=displaydata)
  74. return outputText
  75. #fw=codecs.open('c:/tmp/output.html','w','utf-8')
  76. #fw.write(outputText)
  77. #fw.close()
  78. #os.startfile('c:/tmp/output.html')
  79. #print(outputText)