def create( cls: Type[UrlLink], url: str, title: Union[str, None], thumbnail_url: Union[str, None], description: Union[str, None] ) -> UrlLink: """ create urllink from url string """ log.info('create url_link for %s', url) html = etree.HTML(requests.get(url).text) if title is None: title = html.xpath('//meta[@property="og:title"]/@content') title = title[0] if len(title) else url if thumbnail_url is None: thumbnail_url = html.xpath('//meta[@property="og:image"]/@content') thumbnailUrl = thumbnail_url[0] if len(thumbnail_url) else "" if description is None: description = html.xpath('//meta[@property="og:description"]/@content') description = description[0] if len(description) else "" payload = UrlLinkPayload( title=title, url=url, thumbnailUrl=thumbnail_url, description=description ) return UrlLink(payload)
def south_north_fund(): url = "http://money.finance.sina.com.cn/quotes_service/api/jsonp.php/var%20liveDateTableList=/HK_MoneyFlow.getDayMoneyFlowOtherInfo" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36' } data = {'ts': 2342354353, '_': CommonUtil.get_timestamp()} resp = requests.get(url, data, headers=headers) html = resp.text live_date_table_list = re.findall("var liveDateTableList=\((.*?)\)", html) live_data = live_date_table_list[0] live_json = jsons.loads(live_data) fund_link = "http://stock.finance.sina.com.cn/hkstock/view/money_flow.php" title = "北上资金:%s 南下资金:%s" % (live_json["north_inFlow_total"], live_json["source_inFlow_total"]) description = "沪股通%s 深股通%s,港股通(沪)%s 港股通(深)%s" % \ (live_json["south_hk_sh"]["daliyInflow"], live_json["south_hk_sz"]["daliyInflow"], live_json["north_sh"]["daliyInflow"], live_json["north_sz"]["daliyInflow"]) log.info(title, description) link_payload = UrlLinkPayload(description=description, title=title, url=fund_link, thumbnailUrl="") url_link = UrlLink(payload=link_payload) return url_link
async def message_url(self, message_id: str) -> UrlLinkPayload: """ extract url :param message_id: :return: """ response = await self.puppet_stub.message_url(id=message_id) return UrlLinkPayload(url=response.url_link)
async def message_url(self, message_id: str) -> UrlLinkPayload: """ extract url :param message_id: :return: """ if self.puppet_stub is None: raise Exception('puppet_stub should not be none') response = await self.puppet_stub.message_url(id=message_id) return UrlLinkPayload(url=response.url_link)
def get_weather_url_link() -> UrlLink: we = MJWeather() weather_str, link = we.get_weather('guangdong', "guangzhou") link_payload = UrlLinkPayload( description="点击查看详情", title="当日广州 %s" % weather_str, url=link, thumbnailUrl="https://img.mupaie.com/20200903161818.png") url_link = UrlLink(payload=link_payload) return url_link
def create( cls: Type[UrlLink], url: str, title: Optional[str] = None, thumbnail_url: Optional[str] = None, description: Optional[str] = None ) -> UrlLink: """ create urllink from url string """ log.info('create url_link for %s', url) metadata = get_url_metadata(url) payload = UrlLinkPayload(url=url) payload.title = title or metadata.get('title', None) payload.thumbnailUrl = thumbnail_url or metadata.get('image', None) payload.description = description or metadata.get('description', None) return UrlLink(payload)
def create( cls: Type[UrlLink], url: str, ) -> UrlLink: """doc""" log.info('create url_link for %s', url) res = requests.get(url) payload = UrlLinkPayload( title=res.content.__str__(), url='https://github.com/wechaty/', ) return UrlLink(payload)
async def message_url(self, message_id: str) -> UrlLinkPayload: """ extract url_link payload data from response :param message_id: :return: """ response = await self.puppet_stub.message_url(id=message_id) # parse url_link data from response payload_data = json.loads(response.url_link) return UrlLinkPayload( url=payload_data.get('url', ''), title=payload_data.get('title', ''), description=payload_data.get('description', ''), thumbnailUrl=payload_data.get('thumbnailUrl', ''), )
def get_wx_public_article_url_link(wx_public) -> UrlLink: url = "http://localhost:8088/get_public_article" data = {"wx_public": wx_public} resp = requests.post(url, data) article_json = resp.json() # 取第一条 article = article_json[0] title = str(article["title"]).replace("<em>", "").replace("</em>", "") article["title"] = title[0:15] if len(title) > 15: description = title[15:] else: description = title[0:15] link_payload = UrlLinkPayload(description=description, title=title, url=article["link"], thumbnailUrl=article["imageUrl"]) url_link = UrlLink(payload=link_payload) return url_link