import datetime import pandas as pd class WallapopArticle: def __init__(self, id, title, description, price, currency, location, allows_shipping, url, images, modified_at): self._id = id self._title = title self._description = description self._price = price self._currency = currency self._location = location self._allows_shipping = allows_shipping self._url = url self._images = images self._modified_at = modified_at @classmethod def load_from_json(cls, json_data): return cls( json_data['id'], json_data['title'], json_data['description'], json_data['price']['amount'], json_data['price']['currency'], json_data['location']['city'], json_data['shipping']['user_allows_shipping'], json_data['web_slug'], json_data['images'], json_data['modified_at'] ) def get_id(self): return self._id def get_title(self): return self._title def get_description(self): #return only 500 characters return self._description[:500] + "..." if len(self._description) > 500 else self._description def get_price(self): return self._price def get_currency(self): return self._currency def get_location(self): return self._location def get_allows_shipping(self): return "✅" if self._allows_shipping else "❌" def get_url(self): return self._url def get_images(self): return [img['urls']['medium'] for img in self._images[:3]] def get_modified_at(self): # Convert timestamp in milliseconds to datetime string "YYYY-MM-DD HH:MM:SS" ts = int(self._modified_at) dt = datetime.date.fromtimestamp(ts / 1000) return dt.strftime("%Y-%m-%d %H:%M:%S") def __eq__(self, article): return self.get_id() == article.get_id() def __str__(self): return f"Article(id={self._id}, title='{self._title}', " \ f"price={self._price} {self._currency}, url='{self._url}', modified_at='{self._modified_at}')"