
Код AS3:
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.net.URLVariables;
import flash.net.*;
import flash.utils.Timer;
public class post {
var postWind:MovieClip;
var searchWind:MovieClip;
var vars:URLVariables = new URLVariables;
var token:String;
var requestmes:URLRequest;
var loader:URLLoader ;
var arrayClub:Array;
var i:Number;
var time:Number = 5000;
var _timer:Timer;//= new Timer(time);
var postLimitNumber:Number;
var succPostNumber:Number;
public function post(postwind:MovieClip,searchwind:MovieClip) {
// constructor code
postwind.postingBtn.addEventListener(MouseEvent.CLICK, posting);
postwind.clearBtn.addEventListener(MouseEvent.CLICK, clearing);
postwind.stopBtn.addEventListener(MouseEvent.CLICK, stopping);
postWind = postwind;
postWind.postLimit.text = 90;
postWind.postSucc.text = 0;
//token = Token;
searchWind = searchwind;
}
function changeToken(Token:String){
token = Token;
}
function posting(e:MouseEvent){
postWind.postSucc.text = 0;
postLimitNumber = postWind.postLimit.text;
succPostNumber = postWind.postSucc.text;
token= searchWind.cookieWindow.text;
time = postWind.timeMsg.text*1000;
_timer = new Timer(time);
_timer.addEventListener(TimerEvent.TIMER, sendRequest);
arrayClub = postWind.postClub.text.match(/(?<=club)(\d+)/g);//\s/g);
i=0;
requestmes = new URLRequest;
requestmes.url = 'https://api.vk.com/method/groups.getById.xml?';
requestmes.method = URLRequestMethod.POST;
loader= new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onLoad);
_timer.start();
postWind.status.htmlText= '<font color="#009933">Идёт постинг';
}//posting
function sendRequest(e:TimerEvent){
vars = new URLVariables("group_id="+arrayClub[i]+"&access_token="+token+"&fields=can_post&v=5.52");
requestmes.data = vars;
loader.load(requestmes);
} //sendReq
function onLoad (e:Event){
_timer.stop();
trace(e.target.data);
//проверить на возможность
//запостить
var resp:XML = XML(e.target.data);
trace("resp.group.can_post="+resp.group.can_post);
if(resp.group.can_post == 0){
postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000"> Стена закрыта</font>';
counter();
}else if(resp.error_code>0){
postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000"> '+ resp.error_msg +'</font>';
//trace(resp.error_msg);
counter();
}else if (resp.group.can_post == 1){
//trace(resp.group.can_post);
checkReadyPost();
// вставить првоерку
} else {
postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000"> Неизвестная ошибка</font>';
counter();
}
}//on load
function sendPost(){
trace ("sendPost");
var sendpost:URLRequest;
sendpost = new URLRequest;
sendpost.url = 'https://api.vk.com/method/wall.post.xml?';
sendpost.method = URLRequestMethod.POST;
var loaderPost:URLLoader ;
loaderPost= new URLLoader();
loaderPost.dataFormat = URLLoaderDataFormat.TEXT;
loaderPost.addEventListener(Event.COMPLETE, onsendPost);
vars = new URLVariables("owner_id=-"+arrayClub[i]+"&message="+postWind.postMessage.text+"&access_token="+token+"&fields=can_post&v=5.52");
sendpost.data = vars;
loaderPost.load(sendpost);
} //sendPost
function onsendPost(e:Event){
trace (e.target.data);
var resp:XML = XML(e.target.data);
if(resp.error_code>0){
postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'"><font color="#0000ff">https://vk.com/club'+arrayClub[i]+'</a></font><font color="#ff0000"> '+ resp.error_msg +'</font>'
//trace(resp.error_msg);
}
if(resp.post_id>0){
postWind.otchetSuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'"><font color="#0000ff">https://vk.com/club'+arrayClub[i]+'</a></font><font color="#00CC66"> Успешно добавлен </font>'
succPostNumber +=1;
postWind.postSucc.text = succPostNumber;
}
counter();
}
function counter (){
i++;
if(i<arrayClub.length && succPostNumber<postLimitNumber){
_timer.start();
}else{
_timer.stop();
postWind.status.htmlText= '<font color="#ff0000">Постинг завершён';
}
}
function checkReadyPost(){
trace("checkReadyPost"+arrayClub[i]);
vars = new URLVariables("owner_id=-"+arrayClub[i]+"&count=5");
var respCheck:String;
var regular:RegExp = /(trollchat)/g;
var resultate:String;
var requestmesCheck:URLRequest;
var loaderCheck:URLLoader;
requestmesCheck = new URLRequest;
requestmesCheck.url = 'https://api.vk.com/method/wall.get.xml?';
requestmesCheck.method = URLRequestMethod.POST;
requestmesCheck.data = vars;
loaderCheck= new URLLoader();
loaderCheck.dataFormat = URLLoaderDataFormat.TEXT;
loaderCheck.addEventListener(Event.COMPLETE, onLoadWall);
loaderCheck.load(requestmesCheck);
function onLoadWall (e:Event){
respCheck = e.target.data;
trace(e.target.data);
resultate = regular.exec(respCheck);
if (resultate==null){
sendPost();
trace("resultate=null");
}else{
postWind.otchetSuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff9933"> На стене уже опубликовано такое сообщение</font>'
counter();
}
}
}
function clearing(e:Event){
postWind.otchetUnsuccWin.htmlText = "";
postWind.otchetSuccWin.htmlText = "";
}
function stopping (e:Event){
_timer.stop();
postWind.status.htmlText= '<font color="#ff0000">Постинг завершён';
}
}//class
} // package