Advertisement
KiberInfinity

vk_grab_photos

Sep 22nd, 2013
236
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function vkCopyPhotos(){
  2.       var REQ_CNT=10;//100;
  3.       var REQ_DELAY=400;
  4.       var box=null;
  5.       var ids=[];
  6.       var proc_offset=0;
  7.       var cur_offset=0;
  8.       var abort=false; 
  9.       var done=function(){
  10.             box.hide();
  11.             vkMsg(IDL("CopyDone"),3000);   
  12.       };
  13.      
  14.       var target_aid=0;
  15.       var oid=cur.oid;
  16.      
  17.       var copy=function(callback){ 
  18.          if (abort) return;
  19.          var proc_count=ids.length;
  20.          ge('vk_proc_info').innerHTML=vkProgressBar(proc_offset,proc_count,310,IDL('copying..')+' %');
  21.          var obj=ids[proc_offset];
  22.          if (!obj){
  23.             ge('vk_proc_info').innerHTML=vkProgressBar(1,1,310,' ');
  24.             proc_offset=0;
  25.             callback();
  26.          } else
  27.          dApi.call('photos.copy', {owner_id:obj[0], photo_id:obj[1]},function(r,t){
  28.             proc_offset++;
  29.             var pid = r.response;
  30.             if (target_aid!=0){
  31.                setTimeout(function(){
  32.                   dApi.call('photos.move',{owner_id:vk.id, photo_id:pid, target_album_id:target_aid},function(r){
  33.                      setTimeout(function(){copy(callback);},REQ_DELAY);              
  34.                   })
  35.                },REQ_DELAY);
  36.             } else {
  37.                setTimeout(function(){copy(callback);},REQ_DELAY);              
  38.             }
  39.            
  40.          });
  41.       };
  42.       var info_count=0;
  43.       var scan=function(){
  44.          ids=[];
  45.          if (cur_offset==0){
  46.             ge('vk_proc_info').innerHTML=vkProgressBar(1,1,310,' ');
  47.             ge('vk_scan_info').innerHTML=vkProgressBar(cur_offset,2,310,IDL('listreq')+' %');
  48.          }
  49.          dApi.call('photos.getAll',{owner_id:oid, no_service_albums:0, offset:cur_offset, count:REQ_CNT},function(r){
  50.             if (abort) return;
  51.             var data=r.response;
  52.             if (data==0 || !data[1]){
  53.                done();
  54.                return;
  55.             }
  56.             if (info_count==0) info_count=data.shift();
  57.             else data.shift();
  58.             ge('vk_scan_info').innerHTML=vkProgressBar(cur_offset+REQ_CNT,info_count,310,IDL('listreq')+' %');
  59.             for (var i=0;i<data.length;i++) ids.push([data[i].owner_id,data[i].pid]);
  60.             cur_offset+=REQ_CNT;
  61.             //vklog(ids);
  62.             copy(scan);  
  63.          });
  64.       };
  65.       var run=function(){
  66.          box=new MessageBox({title: IDL('Copy'),closeButton:true,width:"350px"});
  67.          box.removeButtons();
  68.          box.addButton(IDL('Cancel'),function(r){abort=true; box.hide();},'no');
  69.          var html='<div id="vk_proc_info" style="padding-bottom:10px;"></div><div id="vk_scan_info"></div>';
  70.          box.content(html).show(); 
  71.          scan();
  72.       };
  73.       box=new MessageBox({title: IDL('Copy'),closeButton:true,width:"350px"});
  74.       box.removeButtons();
  75.      
  76.       box.content(vkBigLdrImg).show();
  77.      
  78.       var sel=function(){
  79.          box.content('<div id="vk_sel_album"></div>').show();
  80.          box.addButton(IDL('OK'),function(){box.hide(); run();},'no');
  81.          
  82.          stManager.add(['ui_controls.js', 'ui_controls.css'],function(){
  83.             var albums=_vk_albums_list_cache['move'+oid];
  84.             var def_aid=0;
  85.             cur.vk_pvGrabToAlbum = new Dropdown(ge('vk_sel_album'), albums, {
  86.               width: 125,
  87.               selectedItems: [def_aid],
  88.               autocomplete: (albums.length > 7),
  89.               onChange: function(val) {
  90.                   if (!intval(val)) {
  91.                      cur.vk_pvGrabToAlbum.val(def_aid);
  92.                   }
  93.                   target_aid=cur.vk_pvGrabToAlbum.val();
  94.               }
  95.             });    
  96.          });
  97.       }
  98.      
  99.       // GET ALBUMS [cache/API]
  100.       if (_vk_albums_list_cache['move'+oid])
  101.          sel();
  102.       else
  103.       dApi.call('photos.getAlbums',{uid:vk.id},function(r){
  104.          var data=r.response;
  105.          var albums = [];
  106.          var albums_full=[];
  107.          for (var i=0; i<data.length;i++)
  108.             //if (data[i].size<501)
  109.             if (data[i].size<10001)
  110.                albums.push([data[i].aid,data[i].title,data[i].size+""]);
  111.             /*else
  112.                albums_full.push([data[i].aid,data[i].title,data[i].size+""]);*/
  113.                
  114.          _vk_albums_list_cache['move'+oid]=albums.concat(albums_full);
  115.          sel();
  116.       });      
  117. }
  118. vkCopyPhotos();
Advertisement
RAW Paste Data Copied
Advertisement