diff --git a/README.md b/README.md index 534f88f..b0d08af 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,14 @@ [去这里使用](https://transparentlc.github.io/WechatMomentScreenshot) +--- + +**2019.5.14 新功能:输入微信公众号文章链接,自动获取文章标题和封面** + +相关后端代码参见文件 `get_article_info.php`。 + +--- + ### 这个小工具是什么? 一个因为不喜欢也不想往朋友圈发某些不得不发的废文而做出来的摸鱼产物。 diff --git a/get_article_info.php b/get_article_info.php new file mode 100644 index 0000000..bf72a93 --- /dev/null +++ b/get_article_info.php @@ -0,0 +1,68 @@ + true, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_SSL_VERIFYHOST => false, + CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko', + ]); + $response = curl_exec($ch); + + preg_match('/var msg_title = "[\S\s]*?";/', $response, $matches); + $result['title'] = empty($matches[0]) ? '' : str_replace(array('var msg_title = "', '";'), '', $matches[0]); + preg_match('/var msg_cdn_url = "[\S\s]*?";/', $response, $matches); + $result['cover'] = empty($matches[0]) ? '' : str_replace(array('var msg_cdn_url = "', '";'), '', $matches[0]); + curl_close($ch); +}; + +//下载封面图,转存到alicdn +if (!empty($result['cover'])) { + $ch = curl_init($result['cover']); + curl_setopt_array($ch, [ + CURLOPT_VERBOSE => true, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_SSL_VERIFYHOST => false, + CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko', + ]); + $filename = md5(mt_rand()) . '.jpg'; + file_put_contents($filename, curl_exec($ch)); + curl_close($ch); + + $ch = curl_init('https://kfupload.alibaba.com/mupload'); + curl_setopt_array($ch, [ + CURLOPT_VERBOSE => true, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_SSL_VERIFYHOST => false, + CURLOPT_USERAGENT => 'iAliexpress/6.22.1 (iPhone; iOS 12.1.2; Scale/2.00)', + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => [ + 'file' => new CurlFile($filename), + 'scene' => 'aeMessageCenterV2ImageRule', + 'name' => $filename, + ], + ]); + $result['cover'] = json_decode(curl_exec($ch), true)['url']; + curl_close($ch); + + unlink($filename); +} + +$result['success'] = !empty($result['title']) && !empty($result['cover']); +echo json_encode($result); +?> \ No newline at end of file diff --git a/index.html b/index.html index 1b6a0b3..c4daf61 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,8 @@ - - + +