Last active
August 29, 2015 14:23
-
-
Save Elengar/d46713f556c882558938 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<font face="Courier New"> | |
<?php | |
ini_set('max_execution_time', 0); | |
// Group domain here. Example: "elengar" from https://vk.com/elengar | |
$GROUP1 = ""; | |
$GROUP2 = ""; | |
function vk_request($str) { | |
return file_get_contents($str . "&v=5.34"); | |
} | |
function getID($name) { | |
$res = vk_request("http://api.vk.com/method/utils.resolveScreenName?screen_name=$name"); | |
return json_decode($res)->response->object_id; | |
} | |
function getMembers($group_id, $offset, $count) { | |
$res = vk_request("http://api.vk.com/method/groups.getMembers?group_id=$group_id&offset=$offset&count=$count"); | |
return json_decode($res)->response; | |
} | |
function getUsersInfo($user_ids, $fields) { | |
$res = vk_request( "http://api.vk.com/method/users.get?user_ids=$user_ids" | |
. (($fields && $fields != "") ? "&fields=$fields" : "") ); | |
return json_decode($res)->response; | |
} | |
function getUserSubs($user_id, $offset, $count) { | |
$res = vk_request("http://api.vk.com/method/users.getSubscriptions?user_id=$user_id&offset=$offset&count=$count&extended=1"); | |
return json_decode($res)->response; | |
} | |
function getAllMembers($object_id) { | |
$getAllMembers = array(); | |
$offset = 0; | |
$count = 1000; | |
$membersNumber = 0; | |
do { | |
$res = getMembers($object_id, $offset, $count); | |
$membersNumber = $res->count; | |
$getAllMembers = array_merge($getAllMembers, $res->items); | |
$offset += $count; | |
} while ( $offset < $membersNumber ); | |
return $getAllMembers; | |
} | |
function getSubsCount($user_id) { | |
$res = getUserSubs($user_id, 0, 0); | |
return $res->count; | |
} | |
function utf8_len($str) { | |
return mb_strlen($str, "UTF-8"); | |
} | |
function my_str_pad($str, $len, $pad_substr) { | |
$str_len = utf8_len($str); | |
for ($i = $str_len; $i < $len; $i++ ) { | |
$str = $str . $pad_substr; | |
} | |
return $str; | |
} | |
function main() { | |
global $GROUP1, $GROUP2; | |
echo("-- $GROUP1 WITH $GROUP2"); | |
echo("<br>"); | |
$members1 = getAllMembers(getID($GROUP1)); | |
$members2 = getAllMembers(getID($GROUP2)); | |
$total = array_intersect($members1, $members2); | |
if (sizeof($total) == 0) { | |
echo "NO INTERACTION"; | |
return; | |
} | |
$usersInfo = getUsersInfo(implode(",", $total), "domain"); | |
$output_array = array(); | |
$output_offsets = array(); | |
foreach ($usersInfo as $user) { | |
$data = array(); | |
$domain = ($user->domain ? $user->domain : "id".$user->id); | |
$link = "https://vk.com/" . $domain; | |
$data[] = "$user->first_name $user->last_name"; | |
$data[] = "$link"; | |
$subsCount = getSubsCount($user->id); | |
$data[] = "| $subsCount"; | |
foreach ($data as $i => $el) { | |
if (!$output_offsets[$i] || ($output_offsets[$i] < utf8_len($el))) { | |
$output_offsets[$i] = utf8_len($el); | |
} | |
} | |
$output_array[] = $data; | |
} | |
foreach ($output_array as $data) { | |
foreach ($data as $i => $el) { | |
$tabstr = my_str_pad("", $output_offsets[$i] - utf8_len($el), " "); | |
if (strpos($el, "http") !== false) { | |
$el = "<a href='$el'>$el</a>"; | |
} | |
echo($el . $tabstr . " "); | |
} | |
echo("<br>"); | |
} | |
} | |
main(); | |
?> | |
</font> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment