0
0
mirror of https://git.sdf.org/deCloudflare/deCloudflare/ synced 2024-06-17 04:30:48 +00:00
deCloudflare/tool/mastodonwch/index.php

80 lines
2.9 KiB
PHP
Raw Normal View History

2020-11-27 23:46:49 +00:00
<?php
2020-11-27 23:59:43 +00:00
ignore_user_abort(true);
set_time_limit(180);
$toots = [];
$mastodon_servers = ['your.server.fqdn' => 'https://your.server.fqdn/write_this_block_yourself', 'yours2.fqdn' => 'https://...'];
shuffle_assoc($mastodon_servers);
$date_ym = gmdate('Ym');
2020-11-27 23:46:49 +00:00
$sqlme = @new mysqli('localhost', 'sseeccrreett', 'sseeccrreett', 'sseeccrreett');
if ($sqlme->connect_errno)
{
exit;
}
2020-11-27 23:59:43 +00:00
foreach ($mastodon_servers as $svF => $svU)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
$got = @json_decode(wget($svU) , true);
if (!is_array($got) || count($got) < 10 || !isset($got[0]))
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
continue;
2020-11-27 23:46:49 +00:00
}
2020-11-27 23:59:43 +00:00
foreach ($got as $g)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
if (!isset($g['url']) || !preg_match("/write_this_block_yourself/", $g['url']))
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
continue;
2020-11-27 23:46:49 +00:00
}
2020-11-27 23:59:43 +00:00
if (!isset($g['content']) || strlen($g['content']) < 8)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
continue;
2020-11-27 23:46:49 +00:00
}
2020-11-27 23:59:43 +00:00
if (!isset($g['account']) || !isset($g['account']['acct']) || !preg_match("/write_this_block_yourself/", $g['account']['acct']))
{
continue;
}
if (strpos($g['account']['acct'], '@') === false)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
$g['account']['acct'] = $g['account']['acct'] . '@' . $svF;
2020-11-27 23:46:49 +00:00
}
2020-11-27 23:59:43 +00:00
$txt = array_unique(array_filter(array_map(function ($l)
{
$isURL = (preg_match("/write_this_block_yourself/", $l) && !preg_match("/write_this_block_yourself/", $l)) ? true : false;
return $isURL ? explode('/', explode('://', $l, 2) [1], 2) [0] : '';
}
, explode('"', strip_tags($g['content'], '<a>')))));
if (count($txt) == 0)
{
continue;
}
$cfFound = 0;
foreach ($txt as $fqdn)
{
$tmp_id2 = sha1($g['url'] . ';' . $fqdn);
$junk = $sqlme->query("INSERT IGNORE INTO toot_sharefqdn (id,fqdn,ym) VALUES ('{$tmp_id2}','{$fqdn}','{$date_ym}');");
if (is_known_cf(get_domainname($fqdn) [1]))
{
$cfFound = 1;
}
else
{
$junk = $sqlme->query("INSERT IGNORE INTO toot_notcf_fqdn (fqdn,dl) VALUES ('{$fqdn}','0');");
}
}
$toots[sha1($g['url']) ] = [$g['account']['acct'], $g['url'], $cfFound];
2020-11-27 23:46:49 +00:00
}
}
2020-11-27 23:59:43 +00:00
foreach ($toots as $k => $v)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
$junk = $sqlme->query("INSERT IGNORE INTO toot_scanned (id,who,iscf,ym) VALUES ('{$k}','{$v[0]}','{$v[2]}','{$date_ym}');");
if ($v[2] == 1)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
$junk = $sqlme->query("INSERT IGNORE INTO toot_cfsaid (id,who,url,ym) VALUES ('{$k}','{$v[0]}','{$v[1]}','{$date_ym}');");
2020-11-27 23:46:49 +00:00
}
}
2020-11-27 23:59:43 +00:00
if (gmdate('G') == 0)
2020-11-27 23:46:49 +00:00
{
2020-11-27 23:59:43 +00:00
$date_ym = gmdate('Ym', strtotime('7 months ago'));
$junk = $sqlme->query("DELETE FROM toot_scanned WHERE ym = '{$date_ym}';");
$junk = $sqlme->query("DELETE FROM toot_cfsaid WHERE ym = '{$date_ym}';");
$junk = $sqlme->query("DELETE FROM toot_sharefqdn WHERE ym = '{$date_ym}';");
2020-11-27 23:46:49 +00:00
}
2020-11-27 23:59:43 +00:00
file_put_contents('/onion/sseeccrreett/data/mastodon.toot.scan', '');