funP 自動推文機不夠看 , 友情加溫機 燃燒你的青春
一直想靠 funP 一炮而紅的網友們,總是在 funp 狂推一通,但是總是推到手痠吧,一定會搜尋一個叫做 funp 自動推文,搜尋一下有看到有人用 java 寫,有人用 firefox 配合 imacro 來寫巨集,不過現在似乎都不適用了,因為 funp 規定一天推超過 120 篇就要開始打數字驗證囉,所以我們能做的就剩下友情囉,注意 : 我寫公布這篇文章,我知道 funp 一定會修正,大家應該也用不了多久,我是希望 funp 修正,但是我不認為自動加好友有違反到公平性,一切仍看 funp 決議。
圖片 : corAusir 自製 funP 友情加溫機 純程式開發研究使用
撰寫這篇的原因,我只是希望可以讓程式設計的同好們做中學習 FLEX ,可以有一個真實的使用範例還看 FLEX 怎麼使用,雖然是很小的東西,而且我相信這個 BUG 要給 FUNP 修復也是輕而易舉的,不過那都不是重點,這篇主要是解析 AJAX 的原理,以及 FLEX 的 HTTPSERVICE 的運用,如果只是想運用的朋友,我不知道這隻程式可以用多久,也許沒幾天就不能用了吧。請以學習為重點。
FUNP http://funp.com/ 是一個很厲害的文章推薦平台,我很愛他,也很恨他,因為總是要點他點的要死,但是我也很愛他可以告訴我每天的新知,好玩的,好吃的,好用的,基本上我每天不看 FUNP 是不行的,他的網站是由交大的學生以及校友所成立的,我不禁想好奇的問,你們搞了一個無名賣給 YAHOO 還不夠,現在還可以搞出一個這麼好用的 FUNP ,那以後賣給了 YAHOO 我該怎麼辦呢 ?
首先我們先來分析一下 FUNP 的程式碼到底怎麼寫的呢,看來用了非常多的 AJAX 。
重點就在這段 JAVASCRIPT 阿,送入使用者參數可以開出使用者加入好友的頁面。
果然找到了顯示使用者資料的方法了,那加入好友一定就在這個顯示資料裡面囉,不過似乎要讓人不是很清楚看,所以故意被拉成一長條都沒斷行,不過我們還是找到了加入好友的按鈕。
原來加入好友是利用 addtofrd 這個 js function 繼續往下層尋找吧。
整理一下原始碼,是利用 AJAX 去開啟一個是否確認加入好友的視窗。
AJAX 回傳的頁面結果就是這個頁面,我們再來看看這個確認是在哪裡吧。
由於之前的對話窗顯示的頁面最後顯示的是這個方法,因此我們在裡面找到了確認的時候 submit 的方法,再回去搜尋吧。
經過了翻山越嶺,阿…不是啦,是翻了好幾層檔案,終於找到新增好友的 AJAX 網址囉,所以我們就可以用這個網址來新增好友囉,直接來試試看吧。
建議 : 請不要加太多好友,因為如果你的 FUNP 金幣不夠,是不會讓你發信的喔。請酌量使用。
解說 : 這次的程式,因為有跨網域存取的安全性問題,所以使用者必須先下載程式,再將檔案放入安全性例外清單。
之後將使用者帳號以 # 分隔填入空白欄位,這樣子就可以交給他推文囉。
程式放在 http://files.corausir.org/swf/funpadd.swf 請按右鍵另存
當對方也把你加入好友後,就可以使用 FUNP 的群發功能,但是每發一個好友會扣掉一個 FUNP 金幣,也就是即使你有一堆好友,但是沒有錢,也是沒作用的啦,而且如果你的好友一堆,但是金幣不夠,也會卡住你不可以發信喔,請小心啦。
程式使用必須使用瀏覽器開啟,並且先登入過 FUNP 喔。
本程式沒有記錄任何使用者帳號密碼,請安心使用囉~
本來這篇是想說明 FLEX httpservice 的使用方式,所以一起把原始碼公開吧。
funpadd.mxml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="14">
<mx:Script>
<![CDATA[
import flash.net.navigateToURL;
import mx.collections.ArrayCollection;
import mx.utils.StringUtil;
import mx.rpc.events.ResultEvent;
[Bindable]
private var friendArray:Array ;
[Bindable]
private var addFriendSucess:ArrayCollection = new ArrayCollection();
[Bindable]
private var processName:String;
[Bindable]
private var nextName:String;
private function addFriendHandler(name:String):void{
//送出一個 POST 使用者資料來新增好友
var obj:Object = new Object();
obj.act = "addfriend";
obj.name = name;
this.getfunp.send(obj);
}
private function addFriendResult(event:ResultEvent):void{
//把陣列的第一筆去除掉
this.friendArray = this.friendArray.slice(1,this.friendArray.length);
//結果報告清單
this.addFriendSucess.addItemAt(event.result,0);
//繼續新增好友
doAddFriend();
}
private function clickHandler():void{
//var arry:Array = this.friendList.text.replace(" ","").replace("\r","").split("# ");
//trace(arry);
var trimString:String = this.friendList.text;
//先把 空白 字通通拿掉
//注意 : replace 只會執行第一次找到的文字 所以要用迴圈
while(trimString.indexOf(" ")!= -1){
trimString = trimString.replace(" ","");
}
//再把換行符號 \r 給拿掉
//注意 : replace 只會執行第一次找到的文字 所以要用迴圈
while(trimString.indexOf("\r")!= -1){
trimString = trimString.replace("\r","");
}
this.friendArray = trimString.split("#");
//不想把 funP 的機器搞掛所以我設定新增完好友還要等待30秒才可以去加入新的好友
doAddFriend();
}
private function doAddFriend():void{
//如果好友名單內還有好友
if(this.friendArray.length > 0){
//處理中的好友名字
this.processName = this.friendArray[0];
//下一個要處理的好友
this.nextName = this.friendArray[1];
//新增好友
addFriendHandler(this.friendArray[0]);
}
}
private function urlClickHandler():void{
var url:URLRequest = new URLRequest("http://blog.corausir.org/");
navigateToURL(url,"_blank");
}
]]>
</mx:Script>
<mx:HTTPService id="getfunp" url="http://funp.com/people/friend/friendmgt.ajax.php?act=addfriend" method="POST" result="addFriendResult(event)" resultFormat="text"/>
<mx:ApplicationControlBar width="500">
<mx:LinkButton label=":: corAusir :: 程式逗設計 ---- funP 友情加溫機" click="urlClickHandler()"/>
</mx:ApplicationControlBar>
<mx:Canvas width="500" height="300" borderColor="#E2E7EB" themeColor="#D4D4D4" cornerRadius="20" alpha="0.81" backgroundColor="#DED4D4">
<mx:VBox width="100%" height="100%">
<mx:Label text="請填入好友名單 NOTE:第一個請不要出現 # 字"/>
<mx:TextArea id="friendList" width="100%" height="100"/>
<mx:Button label="執行" click="clickHandler()"/>
<mx:Label text="已新增好友筆數 : {this.addFriendSucess.length} 尚未處理好友筆數 : {this.friendArray.length} "/>
<mx:Label text="目前處理好友帳號 : {this.processName} 下一筆好友 : {this.nextName}"/>
<mx:List width="100%" height="100%" dataProvider="{this.addFriendSucess}"></mx:List>
</mx:VBox>
</mx:Canvas>
</mx:Application> |
Random Posts
Loading…
目前並無相關文章











沒有金幣
無法用喔
可惜之處
@佶也
金幣要努力發文啦~
讓人家看到你最好的文章喔
Funp不是已經有內建群發功能了嗎?
@馬諦斯
這個不是群發喔~
這個是幫你加好友 ( 因為原廠的 FUNP 加好友的功能很笨 一次一個人)
等對方也把你加入好友
這樣才可以進行群發的動作
群發功能在哪? orz
@宅
全發就是發信的時候勾選
所有互設為朋友的好友(每位需扣1點funP紅利點數)
這樣就是群發了阿~
群發真的太貴了~
像你加了N個
發不了吼….@@
嗯嗯~~!!加推文者為好友!!
好像很好用~但是我不會~@@
有一天給推120篇嗎?我每天都還沒推就要驗證了ㄋㄟ~沒有一次是 很順的
@melody
這個只是幫你批次加入好友
並沒有推文功能啦 ^^”
至於推 120 篇好像是看休息間隔
我是每次休息 24 小時之後就可以推 120 篇
原來如此~
我好像還沒在funp發過訊息..難怪沒看過..orz
看完之後霧煞煞…
我還是乖乖推好了
@炮爺
哈~@@ 我好像解釋的不是很清楚
因為 FUNP 本來加好友的動作蠻複雜的
所以我就把它改成可以批次自動加好友
這樣子比較方便 ^^
呵呵,我也自己搞了一個自動加好友小東東…XD
大大寫一個群發不用付費的金手指呀~
一封一塊好貴呀~~
要存好久喔!!
不知道為啥,看到沒啥廣告的好部落格,我會很想加入我的連結XD
你文章真得不錯呢!
@莫小屁
未來也許會有廣告阿 XD
不過暫時沒有
先加入吧 ^_^ 哈哈哈
replace那裡可以這樣寫
this.friendArray = trimString.replace(/\s/g,”").split(’#');