skin_set.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. function ringo_do_regex_data(data) {
  2. return new RegExp('(?:^|; )' + data + '=([^;]*)');
  3. }
  4. function ringo_get_post() {
  5. const check = document.getElementById('invert');
  6. if(check.checked === true) {
  7. document.cookie = 'main_css_darkmode=1; path=/';
  8. } else {
  9. document.cookie = 'main_css_darkmode=0; path=/';
  10. }
  11. const check_2 = document.getElementById('use_sys_darkmode');
  12. if(check_2.checked === true) {
  13. document.cookie = 'main_css_use_sys_darkmode=1; path=/';
  14. } else {
  15. document.cookie = 'main_css_use_sys_darkmode=0; path=/';
  16. }
  17. const check_3 = document.getElementById('off_sidebar');
  18. if(check_3.checked === true) {
  19. document.cookie = 'main_css_off_sidebar=1; path=/';
  20. } else {
  21. document.cookie = 'main_css_off_sidebar=0; path=/';
  22. }
  23. history.go(0);
  24. }
  25. function ringo_do_skin_set() {
  26. let cookies = document.cookie;
  27. if(!cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode')) || (cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode')) && cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode'))[1] === '1')) {
  28. if(window.matchMedia('(prefers-color-scheme: dark)').matches) {
  29. document.cookie = 'main_css_darkmode=1; path=/';
  30. } else {
  31. document.cookie = 'main_css_darkmode=0; path=/';
  32. }
  33. }
  34. if(cookies.match(ringo_do_regex_data('main_css_off_sidebar')) && cookies.match(ringo_do_regex_data('main_css_off_sidebar'))[1] === '1') {
  35. document.getElementById('ringo_add_style').innerHTML = `
  36. section {
  37. width: auto;
  38. display: block;
  39. margin: auto;
  40. }
  41. .aside_width {
  42. display: none;
  43. }
  44. .do_fixed {
  45. display: none;
  46. }
  47. `;
  48. }
  49. }
  50. function ringo_load_skin_set() {
  51. let cookies = document.cookie;
  52. if(window.location.pathname === '/change/skin_set') {
  53. let set_language = {
  54. "en-US" : {
  55. "save" : "Save",
  56. "darkmode" : "Darkmode",
  57. "use_sys_darkmode" : "Use system darkmode set",
  58. "off_sidebar" : "Turn off sidebar",
  59. }, "ko-KR" : {
  60. "save" : "저장",
  61. "darkmode" : "다크모드",
  62. "use_sys_darkmode" : "시스템 다크모드 설정 사용",
  63. "off_sidebar" : "사이드바 끄기",
  64. }
  65. }
  66. let language = cookies.match(ringo_do_regex_data('language'))[1];
  67. let user_language = cookies.match(ringo_do_regex_data('user_language'))[1];
  68. if(user_language in set_language) {
  69. language = user_language;
  70. }
  71. if(!language in set_language) {
  72. language = "en-US";
  73. }
  74. let set_data = {};
  75. if(cookies.match(ringo_do_regex_data('main_css_darkmode')) && cookies.match(ringo_do_regex_data('main_css_darkmode'))[1] === '1') {
  76. set_data["invert"] = "checked";
  77. }
  78. if(!cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode')) || (cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode')) && cookies.match(ringo_do_regex_data('main_css_use_sys_darkmode'))[1] === '1')) {
  79. set_data["use_sys_darkmode"] = "checked";
  80. }
  81. if(cookies.match(ringo_do_regex_data('main_css_off_sidebar')) && cookies.match(ringo_do_regex_data('main_css_off_sidebar'))[1] === '1') {
  82. set_data["off_sidebar"] = "checked";
  83. }
  84. document.getElementById("main_skin_set").innerHTML = ' \
  85. <input ' + set_data["use_sys_darkmode"] + ' type="checkbox" id="use_sys_darkmode" name="use_sys_darkmode" value="use_sys_darkmode"> ' + set_language[language]['use_sys_darkmode'] + ' \
  86. <hr class="main_hr"> \
  87. <input ' + set_data["invert"] + ' type="checkbox" id="invert" name="invert" value="invert"> ' + set_language[language]['darkmode'] + ' \
  88. <hr class="main_hr"> \
  89. <input ' + set_data["off_sidebar"] + ' type="checkbox" id="off_sidebar" name="off_sidebar" value="off_sidebar"> ' + set_language[language]['off_sidebar'] + ' \
  90. <hr class="main_hr"> \
  91. <button onclick="ringo_get_post();">' + set_language[language]['save'] + '</button> \
  92. ';
  93. }
  94. }
  95. window.addEventListener('DOMContentLoaded', ringo_do_skin_set);
  96. window.addEventListener('DOMContentLoaded', ringo_load_skin_set);