''' Library for parsing GMaps Location ads ''' MAPAD_ADLIST = 0 MAPAD_ADMAPPLACE = MAPAD_ADLIST MAPAD_ADNAME = 1 MAPAD_ADLOCATION = 2 MAPAD_ADLOCATION_PINLET = MAPAD_ADNAME MAPAD_ADLOCATIONLAT = MAPAD_ADLOCATION MAPAD_ADLOCATIONLNG = 3 MAPAD_ADDATA = MAPAD_ADLOCATIONLNG MAPAD_ADDATA_IMAGE = MAPAD_ADLIST MAPAD_ADDATA_LINK = 4 MAPAD_ADDATA_BASESITE = 5 MAPAD_ADDATA_PROMO = 7 MAPAD_ADLL = MAPAD_ADLIST MAPAD_ADLINKS = MAPAD_ADDATA_LINK MAPAD_ADCLICK = MAPAD_ADNAME MAPAD_ADSITE = MAPAD_ADDATA_BASESITE MAPAD_ADSITE_BASESITE = MAPAD_ADLL MAPAD_ADSITE_WTA = MAPAD_ADNAME MAPAD_ADSITE_WTAARRAY = MAPAD_ADLOCATIONLNG class MapAds(): def __init__(self, mapad: list): self.noads = False self.mapads = None listdata = mapad[MAPAD_ADLIST] if listdata: self.mapads = [] for ldata in listdata: adplace = ldata[MAPAD_ADMAPPLACE] adname = ldata[MAPAD_ADNAME] adlocdata = (str(ldata[MAPAD_ADLOCATION][MAPAD_ADLL][MAPAD_ADLOCATIONLAT]), str(ldata[MAPAD_ADLOCATION][MAPAD_ADLL][MAPAD_ADLOCATIONLNG])) adurllink = ldata[MAPAD_ADLINKS][MAPAD_ADCLICK] adbasesite = ldata[MAPAD_ADSITE][MAPAD_ADSITE_BASESITE] adwtap = ldata[MAPAD_ADSITE][MAPAD_ADSITE_WTA] if len(ldata[MAPAD_ADLOCATION]) > 1: adpinlet = ldata[MAPAD_ADLOCATION][MAPAD_ADLOCATION_PINLET] else: adpinlet = None adwta = adwtap + ". " adwtaterms = [] for ls in ldata[MAPAD_ADSITE][MAPAD_ADSITE_WTAARRAY]: adwtaterms.append(ls[0]) adwta += " ".join(adwtaterms) addata = None if ldata[MAPAD_ADDATA]: adimg = ldata[MAPAD_ADDATA][MAPAD_ADDATA_IMAGE] adurllink = ldata[MAPAD_ADDATA][MAPAD_ADDATA_LINK] adpromotxt = ldata[MAPAD_ADDATA][MAPAD_ADDATA_PROMO] adpromolyr = {"promoTitle": adpromotxt[0], "promoDesc": adpromotxt[1], "promoButton": adpromotxt[2]} addata = {"adImage": adimg, "adPromo": adpromolyr} self.mapads.append({"adName":adname,"adPlace":adplace,"adLocation":", ".join(adlocdata),"adLink":adurllink,"adSite":adbasesite,"adWhy":adwta,"promoData":addata,"adPinImage":adpinlet}) else: self.noads = True