Advertisement
Guest User

Untitled

a guest
May 30th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.43 KB | None | 0 0
  1. <?php
  2. /*
  3. * Name: Динамическая обложка в группу ВКонтакте
  4. * @author: Vasily Pirajog // vk.com/id19933
  5. * public/private: private
  6. */
  7.  
  8. include('function.php');
  9.  
  10. $token = '047703265e8a5a8235dc3df14ac11e7338c107fbf73a710c10c2143b4b34e615157c6aa0b6390db025304';
  11. $group_id = '112101347';
  12. $date_today = date('Ymd');
  13.  
  14. $subscribe = json_decode(api('groups.getMembers', array('group_id' => $group_id, 'sort' => 'time_desc', 'fields' => 'photo_200', 'access_token' => $token)));
  15. // var_dump($subscribe);
  16. $bag = '11.jpg'; // случайный фон
  17. $draw = new ImagickDraw();
  18. $background = new Imagick($bag);
  19. $draw->setFont('ttf.ttf');
  20. $draw->setTextAlignment(Imagick::ALIGN_CENTER);
  21.  
  22. if($subscribe->response) {
  23. $user_info = json_decode(api('users.get', array('lang' => 'en', 'user_id' => $subscribe->response->users[0]->uid)));
  24. // var_dump($user_info);
  25. $name_sub = $user_info->response[0]->first_name.' '.$user_info->response[0]->last_name;
  26. download($subscribe->response->users[0]->photo_200, 'sub.jpg');
  27. $sub_photo = new Imagick('sub.jpg');
  28. rounding($sub_photo, '200', '200');
  29. // $photo, $width, $height
  30. $draw->setFontSize('40');
  31. $draw->setFillColor("rgb(225,225,225)");
  32. $background->compositeImage($sub_photo, Imagick::COMPOSITE_DEFAULT, '150', '70');
  33. // $photo, fucntion(), $x, $y
  34.  
  35.  
  36. //
  37.  
  38. function wall_counters($owner_id) {
  39. $page = 0;
  40. $limit = 100;
  41. $lukas = 0;
  42. do {
  43. $offset = $page * $limit;
  44. $posts = json_decode(api('wall.get', array('domain' => 'lae_official', 'filter' => 'all', 'count' => $limit, 'v' => '5.64', 'offset' => $offset)));
  45.  
  46. sleep(1);
  47.  
  48. if(!isset($posts->response)) {
  49. $lukas = 'Error response';
  50. } else {
  51. for($i = 0; $i < $posts->response->count; $i++) {
  52. $lukas += $posts->response->items[$i]->likes->count;
  53. if($lukas >= 0) {
  54. $comments += $posts->response->items[$i]->comments->count;
  55. if($comments >= 0) {
  56. $reposts += $posts->response->items[$i]->reposts->count;
  57. }
  58. }
  59. }
  60. }
  61.  
  62. $page++;
  63.  
  64. } while($posts->response->count > $offset + $limit);
  65. return array($lukas, $comments, $reposts);
  66. }
  67.  
  68.  
  69. echo wall_counters(1)[0]; // likes
  70. echo "<br>";
  71. echo wall_counters(1)[1]; // comments
  72. echo "<br>";
  73. echo wall_counters(1)[2]; // reposts
  74. echo "<br>";
  75.  
  76.  
  77. //
  78.  
  79.  
  80.  
  81.  
  82. $wall_get =json_decode(api('wall.get', array('owner_id' => '-125717080', 'count' => '50', 'v' => '5.64')));
  83.  
  84. if($wall_get) {
  85. $countlike = array();
  86. $countcomments = array();
  87. foreach($wall_get->response->items as $wall) {
  88. $count = $wall->comments->count;
  89. if($count > 0) {
  90. $comments_get = json_decode(api('wall.getComments', array('owner_id' => '-125717080', 'post_id' => $wall->id, 'need_likes' => '1', 'count' => '100')));
  91. foreach($comments_get->response as $comments) {
  92. if($date_today == date('Ymd', $comments->date)) {
  93. if(!isset($countcomments[$comments->from_id]) and !isset($countlike[$comments->from_id])) {
  94. $countcomments[$comments->from_id] = 1;
  95. $countlike[$comments->from_id] = $comments->likes->count;
  96. } else {
  97. $countcomments[$comments->from_id]++;
  98. $countlike[$comments->from_id] += $comments->likes->count;
  99. }
  100. }
  101. }
  102. }
  103. }
  104. }
  105.  
  106. if(count($countlike) > 0) {
  107. $value = max($countlike);
  108. $uid_top = array_search($value, $countlike);
  109. $user = json_decode(api('users.get', array('user_ids' => $uid_top, 'fields' => 'photo_200')));
  110. echo 'Top of the day by likes: '.$user->response[0]->first_name.' '.$user->response[0]->last_name;
  111. }
  112.  
  113. echo "<br>";
  114.  
  115. if(count($countcomments) > 0) {
  116. $value = max($countcomments);
  117. $uid_top = array_search($value, $countcomments);
  118. $user = json_decode(api('users.get', array('user_ids' => $uid_top, 'fields' => 'photo_200')));
  119. echo 'The best commentator of the day: '.$user->response[0]->first_name.' '.$user->response[0]->last_name;
  120. }
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137. //
  138.  
  139. $background->annotateImage($draw, '250', '330', 0, $name_sub); // имя участника
  140. $background->annotateImage($draw, '795', '70', 0, date("H:i")); // время на фото
  141. // $draw, $x, $y, 0, $name_sub
  142. }
  143. $back = 'result.png'; // готовая фотка
  144. $background->setImageFormat("png");
  145. $background->writeImage($back);
  146.  
  147. $photo = array('photo' => new CURLFile($back, 'image/jpeg', 'image0'));
  148. $get = json_decode(api('photos.getOwnerCoverPhotoUploadServer', array('group_id' => $group_id, 'crop_x2' => '1590','crop_y2' => '400', 'access_token' => $token)));
  149.  
  150. // if($get->response) {
  151. // $upload = json_decode(curl($get->response->upload_url, $photo));
  152. // if($upload->hash) {
  153. // $save = json_decode(api('photos.saveOwnerCoverPhoto', array('hash' => $upload->hash,'photo' => $upload->photo, 'access_token' => $token)));
  154. // if($save->response) die ('Обложка успешно обновлена');
  155. // else die('Обложка не обновлена');
  156. // } else {
  157. // die('Не удалось загрузить фотографию на сервер');
  158. // }
  159. // } else {
  160. // die('Не удалось получить данные для загрузки фотографии');
  161. // }
  162.  
  163.  
  164. if($get->response) {
  165. $upload = json_decode(curl($get->response->upload_url, $photo));
  166. if($upload->hash) {
  167. $save = json_decode(api('photos.saveOwnerCoverPhoto', array('hash' => $upload->hash,'photo' => $upload->photo, 'access_token' => $token)));
  168. if($save->response) die (' ');
  169. else die(' ');
  170. } else {
  171. die(' ');
  172. }
  173. } else {
  174. die(' ');
  175. }
  176.  
  177. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement