| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- "use strict";
- function opennamu_xss_filter(str) {
- return str.replace(/[&<>"']/g, function(match) {
- switch(match) {
- case '&':
- return '&';
- case '<':
- return '<';
- case '>':
- return '>';
- case "'":
- return ''';
- case '"':
- return '"';
- }
- });
- }
- function opennamu_xss_filter_decode(str) {
- return str.replace(/&|<|>|'|"/g, function(match) {
- switch(match) {
- case '&':
- return '&';
- case '<':
- return '<';
- case '>':
- return '>';
- case ''':
- return "'";
- case '"':
- return '"';
- }
- });
- }
- function opennamu_do_id_check(data) {
- if(data.match(/\.|\:/)) {
- return 0;
- } else {
- return 1;
- }
- }
- function opennamu_do_ip_render() {
- for(let for_a = 0; for_a < document.getElementsByClassName('opennamu_render_ip').length; for_a++) {
- let ip = document.getElementsByClassName('opennamu_render_ip')[for_a].innerHTML.replace(/&/g, '&');
- fetch('/api/ip/' + opennamu_do_url_encode(ip)).then(function(res) {
- return res.json();
- }).then(function(data) {
- if(document.getElementsByClassName('opennamu_render_ip')[for_a].id !== "opennamu_render_end") {
- document.getElementsByClassName('opennamu_render_ip')[for_a].innerHTML = data["data"];
- document.getElementsByClassName('opennamu_render_ip')[for_a].id = "opennamu_render_end";
- }
- });
- }
- }
- function opennamu_do_url_encode(data) {
- return encodeURIComponent(data);
- }
- function opennamu_cookie_split_regex(data) {
- return new RegExp('(?:^|; )' + data + '=([^;]*)');
- }
- function opennamu_get_main_skin_set(set_name) {
- return fetch("/api/setting/" + opennamu_do_url_encode(set_name)).then(function(res) {
- return res.json();
- }).then(function(text) {
- if(
- document.cookie.match(opennamu_cookie_split_regex(set_name)) &&
- document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== '' &&
- document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== 'default'
- ) {
- return document.cookie.match(opennamu_cookie_split_regex(set_name))[1];
- } else {
- if(text[set_name]) {
- return text[set_name][0][0];
- } else {
- return '';
- }
- }
- });
- }
- function opennamu_send_render(data) {
- if(data == '<br>' || data == '' || data.match(/^ +$/)) {
- data = '<br>';
- } else {
- data = data.replace(/( |^)(https?:\/\/(?:[^ ]+))/g, function(m0, m1, m2) {
- let link_main = m2;
- link_main = link_main.replace('"', '"');
- return m1 + '<a href="' + link_main + '">' + link_main + '</a>';
- });
- data = data.replace(/<a(?:(?:(?!>).)*)>((?:(?!<\/a>).)+)<\/a>/g, function(m0, m1) {
- let data_unescape = opennamu_xss_filter_decode(m1)
- return '<a href="/w/' + opennamu_do_url_encode(data_unescape) + '">' + m1 + '</a>'
- })
- }
- return data;
- }
- function opennamu_insert_v(name, data) {
- document.getElementById(name).value = data;
- }
- function opennamu_do_trace_spread() {
- if(document.getElementsByClassName('opennamu_trace')) {
- document.getElementsByClassName('opennamu_trace')[0].innerHTML = '' +
- '<style>.opennamu_trace_button { display: none; } .opennamu_trace { white-space: pre-wrap; overflow-x: unset; text-overflow: unset; }</style>' +
- '' + document.getElementsByClassName('opennamu_trace')[0].innerHTML
- }
- }
- function opennamu_do_render(to_obj, data, name = '', do_type = '', option = '') {
- let url;
- if(do_type === '') {
- url = "/api/render";
- } else {
- url = "/api/render/" + do_type;
- }
- fetch(url, {
- method : 'POST',
- headers : { 'Content-Type': 'application/x-www-form-urlencoded' },
- body : new URLSearchParams({
- 'name' : name,
- 'data': data,
- 'option' : option
- })
- }).then(function(res) {
- return res.json();
- }).then(function(text) {
- if(document.getElementById(to_obj)) {
- if(text["data"]) {
- document.getElementById(to_obj).innerHTML = text["data"];
- eval(text["js_data"]);
- } else {
- document.getElementById(to_obj).innerHTML = '';
- }
- }
- });
- }
- function opennamu_page_control(url, page, data_length, data_length_max = 50) {
- let next = function() {
- if(data_length_max === data_length) {
- return '<a href="' + url.replace('{}', String(page + 1)) + '">(+)</a>';
- } else {
- return '';
- }
- };
- let back = function() {
- if(page !== 1) {
- return '<a href="' + url.replace('{}', String(page - 1)) + '">(-)</a>';
- } else {
- return '';
- }
- };
- return (back() + ' ' + next()).replace(/^ /, '');
- }
- function openamu_make_list(left = '', right = '', bottom = '') {
- let data_html = '<div class="opennamu_recent_change">';
- data_html += left;
-
- data_html += '<div style="float: right;">';
- data_html += right;
- data_html += '</div>'
- data_html += '<div style="clear: both;"></div>';
- if(bottom !== "") {
- data_html += '<hr>'
- data_html += bottom;
- }
- data_html += '</div>';
- data_html += '<hr class="main_hr">';
- return data_html;
- }
|