forked from Decentrala/website
		
	Fixed poster encoding.
This commit is contained in:
		
							
								
								
									
										27
									
								
								poster.py
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								poster.py
									
									
									
									
									
								
							@@ -5,8 +5,9 @@ from dateutil import relativedelta
 | 
				
			|||||||
EVENTS_CSV_PATH = "dogadjaji.csv"
 | 
					EVENTS_CSV_PATH = "dogadjaji.csv"
 | 
				
			||||||
CURRENT_TIME = dt.date.today()
 | 
					CURRENT_TIME = dt.date.today()
 | 
				
			||||||
NEXT_MONTH = CURRENT_TIME + relativedelta.relativedelta(months=1, day=1)
 | 
					NEXT_MONTH = CURRENT_TIME + relativedelta.relativedelta(months=1, day=1)
 | 
				
			||||||
DAYS_OF_WEEK_SR = ("PON", "UTO", "SRE", "CET", "PET", "SUB", "NED")
 | 
					DAYS_OF_WEEK_SR = ("PON", "UTO", "SRE", "ČET", "PET", "SUB", "NED")
 | 
				
			||||||
MONTHS_SR = ("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar")
 | 
					MONTHS_SR = ("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust",\
 | 
				
			||||||
 | 
					            "Septembar", "Oktobar", "Novembar", "Decembar")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def load_events(csv_path:str) -> list[dict]:
 | 
					def load_events(csv_path:str) -> list[dict]:
 | 
				
			||||||
    events = []
 | 
					    events = []
 | 
				
			||||||
@@ -20,11 +21,9 @@ def load_events(csv_path:str) -> list[dict]:
 | 
				
			|||||||
            event_title = event[3]
 | 
					            event_title = event[3]
 | 
				
			||||||
            current_event = {"date":event_date_parsed,
 | 
					            current_event = {"date":event_date_parsed,
 | 
				
			||||||
                             "time":event_time,
 | 
					                             "time":event_time,
 | 
				
			||||||
                             "title":event_title}
 | 
					                             "title":event_title.strip()}
 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            if event_date_parsed >= NEXT_MONTH:
 | 
					            if event_date_parsed >= NEXT_MONTH:
 | 
				
			||||||
                events.append(current_event)
 | 
					                events.append(current_event)
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        return events
 | 
					        return events
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def render_table(events:list[dict])-> str:
 | 
					def render_table(events:list[dict])-> str:
 | 
				
			||||||
@@ -33,18 +32,23 @@ def render_table(events:list[dict])-> str:
 | 
				
			|||||||
        date = DAYS_OF_WEEK_SR[event["date"].weekday()]
 | 
					        date = DAYS_OF_WEEK_SR[event["date"].weekday()]
 | 
				
			||||||
        day = event["date"].day
 | 
					        day = event["date"].day
 | 
				
			||||||
        title = event["title"]
 | 
					        title = event["title"]
 | 
				
			||||||
        html += f"<tr><td>{date}</td><td>{day}.</td><td>{title}</td></tr>\n"
 | 
					        html += f"\t\t\t<tr> <td>{date}</td> <td>{day}.</td> <td>{title}</td> </tr>\n"
 | 
				
			||||||
    return html
 | 
					    return html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def render_page(table: str) -> str:
 | 
					def render_page(table: str) -> str:
 | 
				
			||||||
    head = "<head><link rel=\"stylesheet\" href=\"styles/poster.css\"><head>"
 | 
					    head = "<head>\n\t<meta charset=\"UTF-8\">\n\t<link rel=\"stylesheet\"\
 | 
				
			||||||
 | 
					href=\"styles/poster.css\">\n<head>"
 | 
				
			||||||
    header = "<h1>DECENTRALA</h1>"
 | 
					    header = "<h1>DECENTRALA</h1>"
 | 
				
			||||||
    subheader = f"<h2>Plan za {MONTHS_SR[NEXT_MONTH.month - 1]}</h2>"
 | 
					    subheader = f"<h2>Plan za {MONTHS_SR[NEXT_MONTH.month - 1]}</h2>"
 | 
				
			||||||
    link = "<div id=link>dmz.rs</div>"
 | 
					    link = "<div id=link>dmz.rs</div>"
 | 
				
			||||||
    p1 = "<p>Radionice počinju u <strong>19h</strong> u Društvenom centru Krov u <strong>Kraljice Marije 47</strong>.</p>"
 | 
					    p1 = "<p>Radionice počinju u <strong>19h</strong> u Društvenom centru Krov\
 | 
				
			||||||
    p2 = "<p>Ulaz u zgradu je u prolazu pored Štark prodavnice slatkiša, odmah pored menjačnice. DC Krov je na poslednjem spratu.</p>"
 | 
					u <strong>Kraljice Marije 47</strong>.</p>"
 | 
				
			||||||
    return f"<html>{head}<body><main>{header}{subheader}<table>{table}</table>{p1}{p2}{link}</main></body></html>"
 | 
					    p2 = "<p>Ulaz u zgradu je u prolazu pored Štark prodavnice slatkiša, odmah\
 | 
				
			||||||
 | 
					pored menjačnice. DC Krov je na poslednjem spratu.</p>"
 | 
				
			||||||
 | 
					    return f"<html>\n{head}\n<body>\n\t<main>\n\t\t{header}\n\t\t{subheader}\
 | 
				
			||||||
 | 
					\n\t\t<table>\n{table}\t\t</table>\n\t\t{p1}\n\t\t{p2}\n\t\t{link}\n\t</main>\
 | 
				
			||||||
 | 
					\n</body>\n</html>"
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
    events = load_events(EVENTS_CSV_PATH)
 | 
					    events = load_events(EVENTS_CSV_PATH)
 | 
				
			||||||
    table = render_table(events)
 | 
					    table = render_table(events)
 | 
				
			||||||
@@ -53,6 +57,5 @@ def main():
 | 
				
			|||||||
    f.write(page)
 | 
					    f.write(page)
 | 
				
			||||||
    f.close()
 | 
					    f.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
    main()
 | 
					    main()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user