Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by http://DeZender.Net
- * @ deZender (PHP7 Decoder for ionCube Encoder)
- *
- * @ Version : 5.0.1.0
- * @ Author : DeZender
- * @ Release on : 22.04.2022
- * @ Official site : http://DeZender.Net
- *
- */
- namespace TXMI;
- class Admin
- {
- public const PAGE_SLUG = 'txmi';
- public const NONCE_KEY = 'txmi_nonce';
- public const AJAX_HOOK = 'txmi_import_one';
- public const AJAX_TOKEN = 'txmi_generate_token';
- public const AJAX_CRON_APPLY = 'txmi_cron_apply';
- public const AJAX_CRON_STATUS = 'txmi_cron_status';
- public const AJAX_CRON_TOGGLE = 'txmi_cron_toggle';
- public const AJAX_REFRESH_LINKS = 'txmi_refresh_links';
- public const OPT_GROUP = 'txmi_options_group';
- public const API_BASE = 'https://api-themex.site/4651_NewApi/';
- public const API_SUFFIX = '/api.php?slug=';
- public const API_LINKS = 'https://api-themex.site/4651_NewApi/auto/api.php?slug=';
- public const CRON_API_ENDPOINT = 'https://api.cron-job.org';
- public function __construct()
- {
- add_action('admin_menu', [$this, 'menu']);
- add_action('admin_init', [$this, 'register_settings']);
- add_action('admin_enqueue_scripts', [$this, 'enqueue']);
- add_action('wp_ajax_' . self::AJAX_HOOK, [$this, 'ajax_import_one']);
- add_action('wp_ajax_' . self::AJAX_TOKEN, [$this, 'ajax_generate_token']);
- add_action('wp_ajax_' . self::AJAX_CRON_APPLY, [$this, 'ajax_cron_apply']);
- add_action('wp_ajax_' . self::AJAX_CRON_STATUS, [$this, 'ajax_cron_status']);
- add_action('wp_ajax_' . self::AJAX_CRON_TOGGLE, [$this, 'ajax_cron_toggle']);
- add_action('wp_ajax_' . self::AJAX_REFRESH_LINKS, [$this, 'ajax_refresh_links']);
- add_action('update_option_' . TXMI_OPT_KEY, [$this, 'maybe_update_cron_on_save'], 10, 3);
- }
- static public function defaults(): array
- {
- return [
- 'api_site' => 'vip_shed4u1',
- 'title_prefix' => '',
- 'title_suffix' => '',
- 'title_remove_list' => ['مشاهدة'],
- 'description_tpl' => 'مشاهدة {TITLE} اونلاين وتحميل مباشر بدون إعلانات{if_QUALITY} بجودة عالية {QUALITY}{/if_QUALITY}{if_GENRE} نوع العرض {GENRE}{/if_GENRE}{if_YEARS} إنتاج {YEARS}{/if_YEARS}{if_NATION} من {NATION}{/if_NATION}.',
- 'post_status' => 'publish',
- 'require_poster_ok' => 1,
- 'auto_token' => '',
- 'auto_domain_override' => '',
- 'auto_site' => 'vip_shed4u1',
- 'auto_page_mode' => 'none',
- 'auto_page_custom' => '',
- 'auto_repeat_times' => 3,
- 'auto_hits' => 0,
- 'cron_enabled' => 0,
- 'cron_api_key' => '565o8oIRaKqUBhB5a0tW4vj3EhB4bIPsViFH1J/kuDk=',
- 'cron_job_id' => '',
- 'cron_interval' => 15,
- 'cron_timezone' => 'UTC',
- 'site_links_override' => []
- ];
- }
- static public function api_map(): array
- {
- return ['vip_shed4u1' => 'VIP_shed4u1', 'topcinema' => 'topcinema', 'egydead' => 'egydead', 'arabseed' => 'ArabSeed', 'tuktukcinema' => 'tuktukcinema', '3isq' => '3isq', 'lodynet' => 'lodynet', 'newanime4up' => 'newanime4up', 'animerco' => 'animerco'];
- }
- static public function default_sites_ui(): array
- {
- return ['vip_shed4u1' => 'شاهد فور يو', 'topcinema' => 'توب سينما', 'egydead' => 'ايجي ديد', 'arabseed' => 'عرب سيد', 'tuktukcinema' => 'توكتوك سينما', '3isq' => 'قصة عشق', 'lodynet' => 'لودي نت', 'newanime4up' => 'أنمي فور أب', 'animerco' => 'أنيميركو'];
- }
- static public function default_sites_links(): array
- {
- return ['vip_shed4u1' => 'https://shahed4u.day/search?s=', 'topcinema' => 'https://topcinema.pro/recent/', 'egydead' => 'https://a.egydead.space/', 'arabseed' => 'https://a.asd.homes/main0/', 'tuktukcinema' => 'https://tuk.cam/', '3isq' => 'https://3isq.cam/', 'lodynet' => 'https://lody.cam/', 'newanime4up' => 'https://anime4up.rest/episode/', 'animerco' => 'https://got.animerco.org/episodes/'];
- }
- static public function get_page_file_path(): string
- {
- return plugin_dir_path(__FILE__) . 'page.txt';
- }
- static public function get_current_page(): int
- {
- $file = self::get_page_file_path();
- if (file_exists($file)) {
- $raw = trim((string) @file_get_contents($file));
- if (($raw !== '') && ctype_digit($raw)) {
- $n = (int) $raw;
- if (1 <= $n) {
- return $n;
- }
- }
- }
- return 1;
- }
- static public function set_current_page(int $page): void
- {
- $page = max(1, $page);
- $file = self::get_page_file_path();
- @file_put_contents($file, (string) $page, LOCK_EX);
- }
- static public function sites_ui(): array
- {
- return self::default_sites_ui();
- }
- static public function sites_links(): array
- {
- $opt = self::opt();
- $defaults = self::default_sites_links();
- $over = (isset($opt['site_links_override']) && is_array($opt['site_links_override']) ? $opt['site_links_override'] : []);
- $links = $defaults;
- foreach ($over as $k => $v) {
- $k = sanitize_key($k);
- if ($k && isset($defaults[$k])) {
- $vv = trim((string) $v);
- if ($vv !== '') {
- $norm = self::normalize_input_url($vv);
- if ($norm !== '') {
- $links[$k] = $norm;
- }
- }
- }
- }
- return $links;
- }
- static public function api_url_for(string $site): string
- {
- $map = self::api_map();
- if (!array_key_exists($site, $map)) {
- $site = self::defaults()['api_site'];
- }
- $dir = $map[$site];
- return self::API_BASE . $dir . self::API_SUFFIX;
- }
- static public function opt(): array
- {
- $opt = get_option(TXMI_OPT_KEY, []);
- return wp_parse_args((array) $opt, self::defaults());
- }
- public function menu()
- {
- add_menu_page(__('ThemeXScrap', 'tx-media-importer'), __('ThemeXScrap', 'tx-media-importer'), 'manage_options', self::PAGE_SLUG, [$this, 'page'], 'dashicons-upload', 56);
- }
- public function register_settings()
- {
- register_setting(self::OPT_GROUP, TXMI_OPT_KEY, [$this, 'sanitize']);
- add_settings_section('txmi_titles', 'العنوان والوصف', '__return_false', self::PAGE_SLUG);
- add_settings_field('title_prefix', 'بادئة العنوان', [$this, 'field_text'], self::PAGE_SLUG, 'txmi_titles', ['key' => 'title_prefix']);
- add_settings_field('title_suffix', 'لاحقة العنوان', [$this, 'field_text'], self::PAGE_SLUG, 'txmi_titles', ['key' => 'title_suffix']);
- add_settings_field('title_remove_list', 'حذف كلمات من العنوان', [$this, 'field_remove_list'], self::PAGE_SLUG, 'txmi_titles');
- add_settings_field('description_tpl', 'الوصف', [$this, 'field_wp_editor'], self::PAGE_SLUG, 'txmi_titles', ['key' => 'description_tpl']);
- add_settings_section('txmi_beh', 'سلوك السحب', '__return_false', self::PAGE_SLUG);
- add_settings_field('post_status', 'حالة المقال', [$this, 'field_post_status'], self::PAGE_SLUG, 'txmi_beh');
- add_settings_field('require_poster_ok', 'لا تنشر إذا فشل رفع الصورة', [$this, 'field_checkbox'], self::PAGE_SLUG, 'txmi_beh', ['key' => 'require_poster_ok']);
- }
- public function sanitize($input)
- {
- $def = self::defaults();
- $cur = self::opt();
- $out = $cur;
- $sect = sanitize_text_field($input['_section'] ?? 'settings');
- if ($sect === 'settings') {
- $out['api_site'] = (array_key_exists($input['api_site'] ?? $def['api_site'], self::api_map()) ? $input['api_site'] ?? $def['api_site'] : $def['api_site']);
- $out['title_prefix'] = sanitize_text_field($input['title_prefix'] ?? '');
- $out['title_suffix'] = sanitize_text_field($input['title_suffix'] ?? '');
- $list = (isset($input['title_remove_list']) && is_array($input['title_remove_list']) ? $input['title_remove_list'] : []);
- $list = array_map('sanitize_text_field', array_map('trim', $list));
- $list = array_values(array_filter(array_unique($list)));
- $out['title_remove_list'] = $list;
- $out['description_tpl'] = wp_kses_post($input['description_tpl'] ?? $def['description_tpl']);
- $ps = (string) ($input['post_status'] ?? 'publish');
- $out['post_status'] = (in_array($ps, ['publish', 'draft', 'pending'], true) ? $ps : 'publish');
- $out['require_poster_ok'] = (array_key_exists('require_poster_ok', $input) ? (!empty($input['require_poster_ok']) ? 1 : 0) : $cur['require_poster_ok'] ?? 1);
- }
- else if ($sect === 'auto') {
- if (isset($input['txmi_page_txt'])) {
- $page = max(1, intval($input['txmi_page_txt']));
- self::set_current_page($page);
- }
- $out['auto_domain_override'] = esc_url_raw($input['auto_domain_override'] ?? '');
- $out['auto_site'] = (array_key_exists($input['auto_site'] ?? $def['auto_site'], self::api_map()) ? $input['auto_site'] ?? $def['auto_site'] : $def['auto_site']);
- $mode = (in_array($input['auto_page_mode'] ?? 'none', ['none', 'query', 'path', 'appender', 'custom'], true) ? $input['auto_page_mode'] : 'none');
- $out['auto_page_mode'] = $mode;
- $out['auto_page_custom'] = sanitize_text_field($input['auto_page_custom'] ?? '');
- $repeat = max(1, intval($input['auto_repeat_times'] ?? ($cur['auto_repeat_times'] ?? 3)));
- $out['auto_repeat_times'] = $repeat;
- $hits = intval($cur['auto_hits'] ?? 0);
- if (isset($input['auto_repeat_times']) || isset($input['txmi_page_txt']) || isset($input['auto_domain_override'])) {
- $hits = 0;
- }
- $out['auto_hits'] = $hits;
- $tok = $cur['auto_token'] ?? '';
- ........................................................
- .....................................
- .................
Advertisement
Add Comment
Please, Sign In to add comment