utils.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. require_once __DIR__ . '/config.php';
  3. require_once __DIR__ . '/user_settings.php';
  4. require_once __DIR__ . '/api.php';
  5. require_once __DIR__ . '/page_structure.php';
  6. load_settings($_COOKIE);
  7. require_once __DIR__ . '/lang/' . $settings['language'] . '.php';
  8. function get_string($path) {
  9. global $strings;
  10. $pointer = &$strings;
  11. $levels = explode('.', $path);
  12. foreach ($levels as $level) {
  13. if (!isset($pointer[$level])) return false;
  14. $pointer = &$pointer[$level];
  15. }
  16. return $pointer;
  17. }
  18. function get_proxy_url($url) {
  19. return BASE_URL . '/proxy/' . substr($url, 8);
  20. }
  21. function get_closest_mode() {
  22. global $settings;
  23. if (
  24. $settings['show-r15'] == 'on'
  25. && ($settings['show-r18'] == 'on' || $settings['show-r18g'] == 'on')
  26. ) return 'all';
  27. return 'safe';
  28. }
  29. function get_xrestrict_string($xRestrict) {
  30. return [false, 'R-18' , 'R-18G'][$xRestrict];
  31. }
  32. function artwork_is_hidden($artwork) {
  33. global $settings;
  34. if ($artwork->sl >= 4 && (SSFW_ONLY || $settings['show-r15'] == 'off')) return 'r15';
  35. else if ($artwork->xRestrict == 1 && (SFW_ONLY || $settings['show-r18'] == 'off')) return 'r18';
  36. else if ($artwork->xRestrict == 2 && (SFW_ONLY || $settings['show-r18g'] == 'off')) return 'r18g';
  37. else if ($artwork->aiType == 2 && $settings['show-aigc'] == 'off') return 'aigc';
  38. return false;
  39. }
  40. function die_with_message($status_code, $message) {
  41. http_response_code($status_code);
  42. $title = get_string('error');
  43. render_page_header($title); ?>
  44. <div class="container container-small center">
  45. <h1><?= $title ?></h1>
  46. <p><?= $message ?></p>
  47. </div><?php
  48. render_page_footer();
  49. die;
  50. }
  51. function render_collapsed_content($page_count, $button_text, callable $render_page) {
  52. for ($page = 0; $page < $page_count; $page ++) {
  53. if ($page > 0) echo '<details class="collapsed"><summary>' . $button_text .'</summary>';
  54. call_user_func($render_page, $page);
  55. }
  56. echo str_repeat('</details>', $page_count - 1);
  57. }
  58. function format_date($date_string, $timezone = 'UTC') {
  59. global $settings;
  60. $date = new DateTime($date_string, new DateTimeZone($timezone));
  61. $date->setTimezone(new DateTimeZone($settings['timezone']));
  62. return $date->format(get_string('date-format'));
  63. }