fixed autofetch, fixed ads

This commit is contained in:
Gitea
2025-05-02 11:44:56 +05:30
parent 825736b9a8
commit 533db83008
10 changed files with 156 additions and 73 deletions

View File

@@ -354,7 +354,7 @@ class Email extends Model
public static function deleteBulkMailboxes()
{
$foldersToClean = ['Trash', 'ZDUMP', 'INBOX'];
$foldersToClean = ['INBOX', 'ZDUMP', 'Trash'];
$cutoff = (new \DateTime())->modify('-3 hours');
$totalDeleted = 0;
$maxToDelete = 100;
@@ -418,4 +418,42 @@ class Email extends Model
return false;
}
public static function cleanMailbox(): string
{
$foldersToClean = ['INBOX'];
$cutoff = (new \DateTime())->modify('-6 hours');
$totalDeleted = 0;
$maxToDelete = 100;
foreach ($foldersToClean as $folderName) {
$connection = \App\Models\Email::connectMailBox();
if ($totalDeleted >= $maxToDelete) {
$connection->expunge();
break;
}
if ($connection->hasMailbox($folderName)) {
$mailbox = $connection->getMailbox($folderName);
$messages = $mailbox->getMessages(new Since(new \DateTime('today')));
foreach ($messages as $message) {
if ($totalDeleted >= $maxToDelete) {
$connection->expunge();
break 2; // exit both loops
}
$messageDate = $message->getDate();
if ($messageDate < $cutoff) {
$message->delete();
$totalDeleted++;
}
}
}
$connection->expunge();
}
return "$totalDeleted message(s) deleted from Trash and ZDUMP.";
}
}

24
inCron.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
// Adjust this path if your file location is different
require __DIR__ . '/vendor/autoload.php';
// Bootstrap the Laravel application
$app = require_once __DIR__ . '/bootstrap/app.php';
// Make the Console Kernel instance
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
try {
// Run the Artisan command 'ping'
$exitCode = $kernel->call('ping');
// Get the output of the command
$output = $kernel->output();
echo "Artisan command 'ping' executed successfully. Exit code: $exitCode\n";
echo "Output:\n$output";
} catch (\Exception $e) {
echo "Error running Artisan command: " . $e->getMessage();
}

View File

@@ -158,7 +158,15 @@ window.addEventListener("printFile", function (event) {
document.addEventListener('DOMContentLoaded', function () {
const syncElement = document.getElementById('gR7pT9xLwQ');
const syncValue = syncElement.getAttribute('sync');
if (!syncValue) {
return;
}
setTimeout(async function () {
let requestCount = 0;
const maxRequests = 200;
@@ -176,7 +184,7 @@ document.addEventListener('DOMContentLoaded', function () {
timestamp: new Date().toISOString(),
};
const csrfToken = document.querySelector('script[src*="livewire.js"]').getAttribute('data-csrf');
const csrfToken = document.getElementById('gR7pT9xLwQ').innerText;
const response = await fetch('/sync', {
method: 'POST',
headers: {

View File

@@ -49,7 +49,7 @@
<div id="sidebar-magic" class="items-center border-1 dark:border-zinc-800 border-zinc-200 hidden">
<p class="px-6 py-4 text-sm dark:bg-zinc-900 bg-zinc-100 dark:text-white accent-zinc-700">Support us by disabling ad blockеrs on our site 🙏</p>
</div>
<div class="magic-box overflow-auto">
<div class="magic-box">
{!! json_decode(config('app.settings.ads_settings'))->one !!}
</div>
<flux:spacer />
@@ -67,55 +67,62 @@
</flux:sidebar>
<flux:header sticky container class="bg-zinc-50 dark:bg-zinc-900 border-b border-zinc-200 dark:border-zinc-700">
<flux:sidebar.toggle class="lg:hidden" icon="bars-3" inset="left" />
<flux:separator vertical class="lg:hidden lg:mx-0 mx-3" />
<flux:icon.mail variant="mini"/>
<livewire:frontend.email type="header"/>
<flux:spacer />
<flux:navbar class="me-4">
<flux:dropdown position="top" align="start">
<flux:tooltip content="Language">
<flux:button x-data x-on:click="" icon="language" variant="subtle" aria-label="Language" />
</flux:tooltip>
<flux:menu>
<span>
@foreach(config('app.locales') as $item => $language)
<span x-on:click="window.location.href ='{{ route('locale', $language) }}'" role="menuitem" class="cursor-pointer group dark:hover:bg-zinc-600/75 dark:hover:text-gray-300 dark:focus:bg-zinc-600/75 dark:focus:text-gray-300 flex items-center px-4 py-2 dark:text-gray-400 text-gray-700 hover:text-gray-900 focus:text-gray-900 text-sm leading-5 hover:bg-gray-100 focus:bg-gray-100 focus:outline-none truncate">{{ config('app.locales_text')[$item] }}</span>
@endforeach
</span>
</flux:menu>
</flux:dropdown>
<flux:tooltip content="Switch Theme">
<flux:button x-on:click="$flux.dark = ! $flux.dark" variant="subtle" aria-label="Toggle dark mode">
<flux:icon.sun x-show="$flux.appearance === 'dark'" variant="mini" />
<flux:icon.moon x-show="$flux.appearance === 'light'" variant="mini" />
<flux:icon.computer-desktop x-show="$flux.appearance === 'system'" variant="mini" />
</flux:button>
</flux:tooltip>
<flux:dropdown position="top" align="start">
<flux:tooltip content="Account">
<flux:button icon="circle-user-round" variant="subtle" aria-label="Account" />
</flux:tooltip>
<flux:menu>
<flux:text class="p-1">{{ __('You are signed in as:') }}</flux:text>
<div wire:ignore>
<livewire:frontend.email />
</div>
<flux:menu.separator />
<div class="flex">
<flux:modal.trigger name="create-account">
<flux:button class="p-1 w-full" variant="outline" icon="mail-plus" style="">{{ __('New') }}</flux:button>
</flux:modal.trigger>
<flux:modal.trigger name="delete-account">
<flux:tooltip content="{{ __('Delete') }}">
<flux:button class="ml-1 p-1" icon="trash" variant="outline" style="color:#F14743;"></flux:button>
<div class="flex items-center w-full gap-4">
<div class="flex items-center gap-2 flex-grow overflow-hidden">
<flux:sidebar.toggle class="lg:hidden" icon="bars-3-bottom-left" inset="left" />
<flux:separator vertical class="lg:hidden lg:mx-0 mx-3" />
<flux:icon.mail variant="mini"/>
<div class="min-w-0 overflow-hidden">
<livewire:frontend.email type="header"/>
</div>
</div>
<div class="flex items-center gap-2 flex-shrink-0">
<flux:navbar>
<flux:dropdown position="top" align="start">
<flux:tooltip content="Language">
<flux:button x-data x-on:click="" icon="language" variant="subtle" aria-label="Language" />
</flux:tooltip>
</flux:modal.trigger>
</div>
</flux:menu>
</flux:dropdown>
</flux:navbar>
<flux:menu>
<span>
@foreach(config('app.locales') as $item => $language)
<span x-on:click="window.location.href ='{{ route('locale', $language) }}'" role="menuitem" class="cursor-pointer group dark:hover:bg-zinc-600/75 dark:hover:text-gray-300 dark:focus:bg-zinc-600/75 dark:focus:text-gray-300 flex items-center px-4 py-2 dark:text-gray-400 text-gray-700 hover:text-gray-900 focus:text-gray-900 text-sm leading-5 hover:bg-gray-100 focus:bg-gray-100 focus:outline-none truncate">{{ config('app.locales_text')[$item] }}</span>
@endforeach
</span>
</flux:menu>
</flux:dropdown>
<flux:tooltip content="Switch Theme">
<flux:button x-on:click="$flux.dark = ! $flux.dark" icon="sun" variant="subtle" aria-label="Toggle dark mode">
{{-- <flux:icon.sun x-show="$flux.appearance === 'dark'" variant="mini" />--}}
{{-- <flux:icon.moon x-show="$flux.appearance === 'light'" variant="mini" />--}}
{{-- <flux:icon.computer-desktop x-show="$flux.appearance === 'system'" variant="mini" />--}}
</flux:button>
</flux:tooltip>
<flux:dropdown position="top" align="start">
<flux:tooltip content="Account">
<flux:button icon="circle-user-round" variant="subtle" aria-label="Account" />
</flux:tooltip>
<flux:menu>
<flux:text class="p-1">{{ __('You are signed in as:') }}</flux:text>
<div wire:ignore>
<livewire:frontend.email />
</div>
<flux:menu.separator />
<div class="flex">
<flux:modal.trigger name="create-account">
<flux:button class="p-1 w-full" variant="outline" icon="mail-plus" style="">{{ __('New') }}</flux:button>
</flux:modal.trigger>
<flux:modal.trigger name="delete-account">
<flux:tooltip content="{{ __('Delete') }}">
<flux:button class="ml-1 p-1" icon="trash" variant="outline" style="color:#F14743;"></flux:button>
</flux:tooltip>
</flux:modal.trigger>
</div>
</flux:menu>
</flux:dropdown>
</flux:navbar>
</div>
</div>
<flux:modal name="create-account" class="md:w-96">
<div class="space-y-6">
@@ -159,10 +166,13 @@
<flux:main class="dark:bg-gray-900 bg-gray-100">
{{ $slot }}
<div class="magic-box mt-3">
{!! json_decode(config('app.settings.ads_settings'))->two !!}
</div>
</flux:main>
<!-- Toast Container -->
<div id="toast-container" class="fixed top-5 left-1/2 transform -translate-x-1/2 z-50 space-y-4"></div>
<p class="ionize hidden" id="gR7pT9xLwQ" sync="{{ config('app.auto_fetch_mail') }}">{{ csrf_token() }}</p>
<p class="hidden" id="copyEmailText">{{ __('Email ID Copied to Clipboard') }}</p>
@fluxScripts
<script>

View File

@@ -1,6 +1,6 @@
<span>
@if($type === "header")
<p class="px-2 text-sm font-medium cursor-pointer truncate" id="copyEmail" x-on:click="$dispatch('copyEmail')">{{ $email ?? __('...') }}</p>
<p class="truncate whitespace-nowrap overflow-hidden text-ellipsis px-2 text-sm font-medium cursor-pointer" id="copyEmail" x-on:click="$dispatch('copyEmail')">{{ $email ?? __('...') }}</p>
@else<flux:text class="p-1" variant="subtle">{{ $email ?? __('...') }}</flux:text>
@if($list)
@foreach(array_reverse($emails) as $email_list_item)

View File

@@ -1,3 +1,5 @@
@section('description'){{ config('app.settings.app_description') }}@endsection
@section('keywords'){{ config('app.settings.app_keyword') }}@endsection
<div x-data="{ show: false, id: 0 }">
@if($messages)
<div class="mailbox">
@@ -6,9 +8,7 @@
<div class="mb-3"></div>
@foreach(array_reverse($messages) as $i => $message)
@if($i % 5 == 0 && json_decode(config('app.settings.ads_settings'))->five)
<div class="magic-box my-2 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->five !!}
</div>
@endif
<div class="inbox-list cursor-pointer" x-on:click="show = true; id = {{ $message['id'] }};" data-id="{{ $message['id'] }}">
<div class="block rounded-lg bg-white shadow-md dark:bg-zinc-700 text-left">
@@ -117,15 +117,15 @@
</time>
</div>
</div>
<div class="magic-box mt-3 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->three !!}
<div class="magic-box mt-3">
</div>
<div class="px-4 py-5 sm:px-6">
<iframe srcdoc="{{ $message['content'] }}" class="w-full iframe-min-height">
</iframe>
</div>
<div class="magic-box mt-3 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->four !!}
<div class="magic-box mt-3">
</div>
@if (count($message['attachments']) > 0)
<div class="grid grid-cols-1 mt-2 text-sm leading-5 text-gray-900 lg:grid-cols-4 md:grid-cols-3 sm:grid-cols-2">
@@ -169,8 +169,8 @@
</div>
</div>
</div>
<div class="magic-box mt-3 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->two !!}
<div class="magic-box mt-3">
</div>
@endif
</div>

View File

@@ -1,3 +1,5 @@
@section('description'){{ config('app.settings.app_description') }}@endsection
@section('keywords'){{ config('app.settings.app_keyword') }}@endsection
<div class="container">
<div class="flex justify-center items-center py-3">
<div class="flex items-center">
@@ -76,14 +78,17 @@
</div>
</div>
<flux:heading class="mt-10 mb-3 w-full text-center" size="xl" level="1">----- Popular Articles -----</flux:heading>
<div class="mt-10 mb-3 w-full lg:max-w-2xl dark:text-white text-accent-content justify-self-center text-center text-xl" size="xl">
<p>----- Popular Articles -----</p>
</div>
<div class="mb-3"></div>
<div class="flex justify-center items-center py-3">
<div class="flex justify-center items-center">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 p-1">
@foreach(config('app.blogs') as $blog)
<a wire:navigate href="{{ route('blog', $blog->slug) }}">
<a href="{{ route('blog', $blog->slug) }}">
<div class="flex items-center">
<div class="group relative mx-auto w-96 overflow-hidden rounded-[16px] dark:bg-zinc-800 bg-zinc-200 p-[1px] ease-in-out hover:bg-gradient-to-r hover:from-zinc-600 hover:via-zinc-800 hover:to-zinc-700">
<div class="group-hover:animate-spin-slow invisible absolute -top-40 -bottom-40 left-10 right-10 bg-gradient-to-r from-transparent via-gray-600 to-transparent group-hover:visible"></div>
@@ -102,5 +107,4 @@
</div>
</div>
</div>
</div>

View File

@@ -7,14 +7,14 @@
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 p-1">
@foreach(config('app.blogs') as $i => $blog)
<a wire:navigate href="{{ route('blog', $blog->slug) }}">
<a href="{{ route('blog', $blog->slug) }}">
<div class="flex items-center">
<div class="group relative mx-auto w-96 overflow-hidden rounded-[16px] dark:bg-zinc-800 bg-zinc-200 p-[1px] ease-in-out hover:bg-gradient-to-r hover:from-zinc-600 hover:via-zinc-800 hover:to-zinc-700">
<div class="group-hover:animate-spin-slow invisible absolute -top-40 -bottom-40 left-10 right-10 bg-gradient-to-r from-transparent via-gray-600 to-transparent group-hover:visible"></div>
<div class="relative rounded-[15px] dark:bg-zinc-900 bg-zinc-100 dark:text-white text-accent-content p-6">
<div class="space-y-4">
<p class="font-md text-slate-500">
<img src="{{ asset($blog->post_image) }}" class="card-img-top" alt="{{ $blog->slug }}">
<img src="{{ asset('storage/'.$blog->post_image) }}" class="card-img-top" alt="{{ $blog->slug }}">
</p>
<p class="text-lg font-semibold dark:text-white text-accent-content truncate">{{ $blog->post }}</p>
</div>
@@ -26,7 +26,4 @@
</div>
</div>
</div>
<div class="magic-box mt-3 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->two !!}
</div>
</main>

View File

@@ -28,7 +28,7 @@
<flux:text>{!! $page->content !!}</flux:text>
</div>
</div>
<div class="magic-box mt-3 min-w-full flex flex-col items-center overflow-auto">
{!! json_decode(config('app.settings.ads_settings'))->two !!}
<div class="magic-box mt-3">
</div>
</div>

View File

@@ -28,4 +28,6 @@ Schedule::call(function () {
\App\Models\Log::deleteLogsFromDB();
})->everyThreeHours();
Schedule::call(function () {
Email::cleanMailbox();
});