Показать сообщение отдельно
Старый 04.10.2016, 12:21
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 16  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
Код 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