ro
29c8935bfa
https://tenforward.social/@noracodes reported an issue with the CSV not rendering properly because of the mix of single and double quotes, so that's been cleaned up. Also fixed action sorting which was reversed.
64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Location;
|
|
use App\Models\Source;
|
|
|
|
class ExportController extends Controller
|
|
{
|
|
public function exportIndex()
|
|
{
|
|
return view('front.exports', [
|
|
'title' => "Exports"
|
|
]);
|
|
}
|
|
|
|
//
|
|
public function exportCSV($type, $percent)
|
|
{
|
|
$columns = [];
|
|
$list = [];
|
|
|
|
$locations = Location::where("active", true)->get();
|
|
$sources = Source::where("active", true)->get();
|
|
if ($type == 'mastodon') {
|
|
$columns = [
|
|
'domain',
|
|
'severity',
|
|
'public_comment',
|
|
'reject_media',
|
|
'reject_reports',
|
|
'obfuscate',
|
|
];
|
|
};
|
|
|
|
foreach ($locations as $location) {
|
|
$total = $location->block_count + $location->silence_count;
|
|
if ($total >= 2) {
|
|
$rate = $total / count($sources);
|
|
if ($rate * 100 >= $percent) {
|
|
if ($type == 'mastodon') {
|
|
//comman break teh CSV so just take them out
|
|
$comments = str_replace(",", ";", $location->description);
|
|
|
|
//remove extra white space
|
|
$comments = str_replace(["\n\r", "\n", "\r"], " ", $comments);
|
|
$comments = str_replace(['"', "'"], "", $comments);
|
|
//add to the export list
|
|
array_push($list, [$location->url, $location->rating, $comments, "FALSE", "FALSE", "FALSE"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
header('Content-Type: text/csv');
|
|
header('Content-Disposition: attachment; filename=' . $type . "-" . $percent);
|
|
|
|
echo implode(',', $columns) . PHP_EOL;
|
|
foreach ($list as $item) {
|
|
echo implode(',', $item) . PHP_EOL;
|
|
}
|
|
}
|
|
}
|