예제 #1
0
 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)
예제 #2
0
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
예제 #3
0
 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)
예제 #5
0
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
예제 #6
0
    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)
예제 #7
0
 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)
예제 #8
0
 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', ''),
     )
예제 #9
0
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