skin_set.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. history.go(0);
  18. }
  19. function ringo_do_skin_set() {
  20. let cookies = document.cookie;
  21. 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')) {
  22. console.log('test');
  23. if(window.matchMedia('(prefers-color-scheme: dark)').matches) {
  24. document.cookie = 'main_css_darkmode=1; path=/';
  25. } else {
  26. document.cookie = 'main_css_darkmode=0; path=/';
  27. }
  28. }
  29. }
  30. function ringo_load_skin_set() {
  31. let cookies = document.cookie;
  32. if(window.location.pathname === '/change/skin_set') {
  33. let set_language = {
  34. "en-US" : {
  35. "save" : "Save",
  36. "darkmode" : "Darkmode",
  37. "use_sys_darkmode" : "Use system darkmode set",
  38. }, "ko-KR" : {
  39. "save" : "저장",
  40. "darkmode" : "다크모드",
  41. "use_sys_darkmode" : "시스템 다크모드 설정 사용",
  42. }
  43. }
  44. let language = cookies.match(ringo_do_regex_data('language'))[1];
  45. let user_language = cookies.match(ringo_do_regex_data('user_language'))[1];
  46. if(user_language in set_language) {
  47. language = user_language;
  48. }
  49. if(!language in set_language) {
  50. language = "en-US";
  51. }
  52. let set_data = {};
  53. if(cookies.match(ringo_do_regex_data('main_css_darkmode')) && cookies.match(ringo_do_regex_data('main_css_darkmode'))[1] === '1') {
  54. set_data["invert"] = "checked";
  55. }
  56. 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')) {
  57. set_data["use_sys_darkmode"] = "checked";
  58. }
  59. document.getElementById("main_skin_set").innerHTML = ' \
  60. <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'] + ' \
  61. <hr class="main_hr"> \
  62. <input ' + set_data["invert"] + ' type="checkbox" id="invert" name="invert" value="invert"> ' + set_language[language]['darkmode'] + ' \
  63. <hr class="main_hr"> \
  64. <button onclick="ringo_get_post();">' + set_language[language]['save'] + '</button> \
  65. ';
  66. }
  67. }
  68. window.addEventListener('DOMContentLoaded', ringo_do_skin_set);
  69. window.addEventListener('DOMContentLoaded', ringo_load_skin_set);