WP-AutoPost破解版支援百度翻譯
WP-AutoPost是什麼
WP-AutoPost是一個著名的WordPress外掛,簡單的說他是一個爬蟲程式,你可以通過WP-AutoPost自動採集網站,自動翻譯,自動釋出文章。WP-AutoPost實現了零程式碼編寫,完全通過介面來配置採集規則 ,實測下來效率很高也很準確,實用性很強。
WP-AutoPost最新破解版
目前WP-AutoPost比較新的版本是3.7.7,測試支援目前最新的WordPress 4.9.8。
下載地址:http://down-www.7down.net/pcdown/soft/xiazai/wp-autopost.rar
該版本已經破解,解壓後把裡面的wp-autopost-pro資料夾拷貝到WordPress外掛目錄下即可。
修復百度翻譯功能
遺憾的是,這個版本WP-AutoPost整合的百度翻譯介面已經很老了,百度官方已經停止支援,只能通過修改程式碼來實現百度翻譯功能。
註冊百度翻譯API
老的翻譯API已經停止服務下線了,我們需要遷移到新的翻譯API。
新的百度翻譯API官方介紹:http://api.fanyi.baidu.com/api/trans/product/prodinfo
註冊之後開通通用翻譯API,在開發者頁面你會得到一個appid和key(金鑰),記下這兩個值後面會用到。
修改程式碼實現翻譯
有三個地方需要修改,一個是百度翻譯類,一個是百度翻譯表單,一個是核心function。
修改百度翻譯類
檔名:wp-autopost-utility-class.php
主要修改了呼叫的API地址,和引數結構。以前是傳api_key,現在要傳appid和key,並且要加鹽之後計算md5。
找到autopostBaiduTranslator類,這個類有個translate方法,修改後的translate方法:
public static function translate($src_text, $fromLanguage, $toLanguage, $appid, $key, $GET = false) { try { $translateUrl = "http://api.fanyi.baidu.com/api/trans/vip/translate"; $postData = array(); $postData['q'] = $src_text; $postData['from'] = $fromLanguage; $postData['to'] = $toLanguage; $postData['appid'] = $appid; $postData['salt'] = rand(1111,9999); $postData['sign'] = md5($appid . $src_text . $postData['salt'] . $key); $curlResponse = self::curlRequest($translateUrl, $postData); $re = json_decode($curlResponse); $translated = array(); if (isset($re->error_code)) { $translated['err'] = $re->error_msg . '(' . $re->error_code . ')'; switch ($re->error_code) { case '52001': $translated['err'] .= '[Time Out]'; break; case '52002': $translated['err'] .= '[The translator system error, try later]'; break; case '52003': $translated['err'] .= '[Unauthorized, please check your API Key]'; break; } } else { $translated['trans_result'] = array(); foreach($re->trans_result as $trans_result) { $translated['trans_result'][] = $trans_result->dst; } } unset($curlResponse); return $translated; } catch (Exception $e) { $translated['err'] = "Exception: " . $e->getMessage(); return $translated; } }
可以看到這裡修改了引數,從api_key改到了appid和key,後面要用到
修改表單程式碼
檔名:wp-autopost-translator-baidu.php
這個檔案主要是百度翻譯設定項的表單等,看到有api_key的地方,都改到appid和key就好,例如以前是:
if(isset($_POST['save_setting'])&&$_POST['save_setting']!=''){ $BaiduTransOptions['api_key'] = trim($_POST['api_key']); update_option( 'wp-autopost-baidu-trans-options', $BaiduTransOptions); $BaiduTransOptions = get_option('wp-autopost-baidu-trans-options'); }
修改到:
if(isset($_POST['save_setting'])&&$_POST['save_setting']!=''){ $BaiduTransOptions['appid'] = trim($_POST['appid']); $BaiduTransOptions['key'] = trim($_POST['key']); update_option( 'wp-autopost-baidu-trans-options', $BaiduTransOptions); $BaiduTransOptions = get_option('wp-autopost-baidu-trans-options'); }
後面還有幾個地方要改,以此類推,請自行修改
核心wp-autopost-function.php修改
最後是WP-AutoPost外掛的核心檔案wp-autopost-function.php,這個檔案加密過,修改起來比較難受。
要改這個檔案是因為這裡呼叫到了autopostBaiduTranslator::translate(),這個方法已經被我們修改過,改變了傳參,所以這裡也要跟著修改。
全文搜尋autopostBaiduTranslator::translate,一共有三處地方需要修改,每個地方加密後的字串不大一樣,需要挨個處理。
\x61\x70\x70\x69\x64是appid這5個字母的hex編碼,\x6b\x65\x79是key這3個字母的hex編碼。
把傳參從translate(…, api_key)改到translate(…, appid, key)就好,比如最後一處translate修改之後如下:
autopostBaiduTranslator::translate(${${"G\x4cO\x42\x41\x4cS"}["\x7a\x65\x6bs\x70\x6f\x7a\x6a"]},${${"\x47\x4c\x4f\x42\x41LS"}["j\x66\x76\x6bcbv\x76\x79\x76\x78"]}[1],${${"GL\x4f\x42\x41L\x53"}["\x6a\x71n\x72\x73p\x63\x6f\x79\x6e"]}[2],${${"G\x4c\x4f\x42A\x4c\x53"}["l\x72\x75\x68\x67\x63"]}["\x61\x70\x70\x69\x64"],${${"G\x4c\x4f\x42A\x4c\x53"}["l\x72\x75\x68\x67\x63"]}["\x6b\x65\x79"]);
上面都修改完之後,填入相應的APPID和Key,百度翻譯就可以正常使用了。文章自動抓取自動翻譯也能正常工作。
