38 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from settings import get_connection_event
 | |
| 
 | |
| class contentPipeline:
 | |
|     def process_item(self, item, spider):
 | |
|         print("entered process_item:")
 | |
|         print("item: ", item)
 | |
|         with get_connection_event() as conn:
 | |
|             with conn.cursor() as cur:
 | |
|                 try:
 | |
|                     sql_statement = f"""
 | |
|                          select * from unloze_event.event e 
 | |
|                           where e.event_title = %s
 | |
|                     """
 | |
|                     cur.execute(sql_statement, [item['event_title']])
 | |
|                     res = cur.fetchone()
 | |
|                     if res is None:
 | |
|                         sql_statement = f"""
 | |
|                             delete from unloze_event.event
 | |
|                             where event_server like '%{item['event_server'].split(":27")[1]}%'
 | |
|                         """
 | |
|                         #very cheap way of replacing rows
 | |
|                         print("deleting thread: ", sql_statement)
 | |
|                         cur.execute(sql_statement)
 | |
|                         sql_statement = f"""
 | |
|                              insert into unloze_event.event 
 | |
|                              (event_title, event_server, event_maps, event_date, event_time, event_reward, event_url)
 | |
|                               VALUES (%s, %s, %s, %s, %s, %s, %s)
 | |
|                         """
 | |
|                         cur.execute(sql_statement, [item['event_title'], item['event_server'], item['event_maps'], item['event_date'], item['event_time'], item['event_reward'], item['event_url']])
 | |
|                         #context manager does not seem to work with this mysql library so manual commiting seems needed
 | |
|                         conn.commit()
 | |
|                 except Exception:
 | |
|                     import traceback
 | |
|                     error_msg = traceback.format_exc()
 | |
|                 print("error_msg: ", error_msg)
 | |
| 
 | |
|         return item
 |