예제 #1
0
 def Render(self, listing: Listing, fields=None) -> List[str]:
   if not fields:
     fields = LISTING_FIELDS
   n = lambda x: dict(numberValue=x)
   s = lambda x: dict(stringValue=x)
   f = lambda x: dict(formulaValue=x)
   for field in fields:
     if field == "pickle":
       yield s(jsonpickle.encode(listing))
       continue
     if field == "id":
       yield s(listing.id())
       continue
     value = getattr(listing, field)
     if value is None:
       yield s("None")
     elif field == "link":
       yield s("http://%s%s" % (self.host, value))
     elif hasattr(value, "parsed"):
       yield n(value.value) if value.parsed else s(str(value))
     elif field == "address":
       yield f('=HYPERLINK("google.com/maps/place/%s", "%s")' % (value, value))
     elif field == "images":
       for imglink in value[:20]:
         yield f('=IMAGE("http://%s%s")' % (self.host, imglink))
         break
     else:
       yield s(str(value))
예제 #2
0
 def _WriteToCache(self, listing: Listing):
     with open(os.path.join(self.directory, listing.id()), "w") as f:
         f.write(jsonpickle.encode(listing))