Kaynağa Gözat

Golang 파트 분리

잉여개발기 (SPDV) 2 yıl önce
ebeveyn
işleme
3e78c253d9
56 değiştirilmiş dosya ile 58 ekleme ve 4065 silme
  1. 5 0
      .gitignore
  2. 0 4
      app.py
  3. 18 9
      route/main_sys_update.py
  4. 35 1
      route/tool/func.py
  5. BIN
      route_go/bin/main.amd64.bin
  6. BIN
      route_go/bin/main.amd64.exe
  7. BIN
      route_go/bin/main.arm64.bin
  8. BIN
      route_go/bin/main.arm64.exe
  9. 0 0
      route_go/bin/test.txt
  10. 0 62
      route_go/go.mod
  11. 0 222
      route_go/go.sum
  12. 0 85
      route_go/main.go
  13. 0 143
      route_go/route/api_bbs.go
  14. 0 93
      route_go/route/api_bbs_list.go
  15. 0 42
      route_go/route/api_bbs_w.go
  16. 0 71
      route_go/route/api_bbs_w_comment.go
  17. 0 24
      route_go/route/api_edit_move_all.go
  18. 0 20
      route_go/route/api_func_auth_list.go
  19. 0 23
      route_go/route/api_func_ip.go
  20. 0 23
      route_go/route/api_func_ip_menu.go
  21. 0 26
      route_go/route/api_func_language.go
  22. 0 56
      route_go/route/api_func_llm.go
  23. 0 19
      route_go/route/api_func_sha224.go
  24. 0 78
      route_go/route/api_list_old_page.go
  25. 0 185
      route_go/route/api_list_recent_block.go
  26. 0 169
      route_go/route/api_list_recent_change.go
  27. 0 152
      route_go/route/api_list_recent_discuss.go
  28. 0 116
      route_go/route/api_list_recent_edit_request.go
  29. 0 63
      route_go/route/api_list_title_index.go
  30. 0 87
      route_go/route/api_search.go
  31. 0 66
      route_go/route/api_setting.go
  32. 0 54
      route_go/route/api_setting_edit.go
  33. 0 138
      route_go/route/api_topic.go
  34. 0 115
      route_go/route/api_topic_list.go
  35. 0 64
      route_go/route/api_user_setting_editor.go
  36. 0 47
      route_go/route/api_user_setting_editor_delele.go
  37. 0 48
      route_go/route/api_user_setting_editor_insert.go
  38. 0 75
      route_go/route/api_user_watch_list.go
  39. 0 31
      route_go/route/api_w_random.go
  40. 0 86
      route_go/route/api_w_raw.go
  41. 0 19
      route_go/route/api_w_render.go
  42. 0 81
      route_go/route/api_w_set_reset.go
  43. 0 87
      route_go/route/api_w_watch_list.go
  44. 0 77
      route_go/route/api_w_xref.go
  45. 0 33
      route_go/route/main_func_easter_egg.go
  46. 0 78
      route_go/route/tool/db_connect.go
  47. 0 5
      route_go/route/tool/document.go
  48. 0 1
      route_go/route/tool/dokumark.go
  49. 0 481
      route_go/route/tool/ip_parser.go
  50. 0 44
      route_go/route/tool/language.go
  51. 0 163
      route_go/route/tool/markdown.go
  52. 0 25
      route_go/route/tool/monimark.go
  53. 0 227
      route_go/route/tool/namumark.go
  54. 0 176
      route_go/route/tool/render.go
  55. 0 25
      route_go/route/tool/some_tool.go
  56. 0 46
      route_go/windows_amd64.ps1

+ 5 - 0
.gitignore

@@ -33,5 +33,10 @@ views/sl_open
 views/nitori
 views/jsonnamu
 
+route_go/bin/main.amd64.bin
+route_go/bin/main.arm64.bin
+route_go/bin/main.amd64.exe
+route_go/bin/main.arm64.exe
+
 sitemap.xml
 sitemap_0.xml

+ 0 - 4
app.py

@@ -6,10 +6,6 @@ import logging
 from route.tool.func import *
 from route import *
 
-if platform.system() == 'Linux':
-    for for_a in os.listdir(os.path.join("route_go", "bin")):
-        os.system('chmod +x ./route_go/bin/' + for_a)
-
 # Init-Version
 with open('version.json', encoding = 'utf8') as file_data:
     version_list = json.loads(file_data.read())

+ 18 - 9
route/main_sys_update.py

@@ -35,16 +35,25 @@ def main_sys_update():
             elif platform.system() == 'Windows':
                 os.system('rd /s /q route')
 
-                urllib.request.urlretrieve('https://github.com/opennamu/opennamu/archive/' + up_data + '.zip', 'update.zip')
-                zipfile.ZipFile('update.zip').extractall('')
-                ok = os.system('xcopy /y /s /r opennamu-' + up_data + ' .')
-                if ok == 0:
-                    os.system('rd /s /q opennamu-' + up_data)
-                    os.system('del update.zip')
+                url = 'https://github.com/opennamu/opennamu/archive/' + up_data + '.zip'
+                local_filename = 'update.zip'
 
-                    return redirect(conn, '/restart')
-                else:
-                    print('Error : update failed')
+                response = requests.get(url, stream = True)
+                if response.status_code == 200:
+                    with open(local_filename, 'wb') as f:
+                        for chunk in response.iter_content(chunk_size = 1024 * 1024):
+                            if chunk:
+                                f.write(chunk)
+                    
+                    zipfile.ZipFile('update.zip').extractall('')
+                    ok = os.system('xcopy /y /s /r opennamu-' + up_data + ' .')
+                    if ok == 0:
+                        os.system('rd /s /q opennamu-' + up_data)
+                        os.system('del update.zip')
+
+                        return redirect(conn, '/restart')
+            
+            print('Error : update failed')
 
             return re_error(conn, '/error/34')
         else:

+ 35 - 1
route/tool/func.py

@@ -672,7 +672,41 @@ def set_init_always(conn, ver_num):
             db_data = curs.fetchall()
             if db_data:
                 m_curs.execute('insert into temp (name, data) values ("wiki_access_password", ?)', [db_data[0][0]])
-    
+
+        curs.execute(db_change('select data from other where name = "update"'))
+        up_data = curs.fetchall()
+        up_data = up_data[0][0] if up_data and up_data[0][0] in ['stable', 'beta', 'dev'] else 'stable'
+
+        exe_type = ''
+        if platform.system() == 'Linux':
+            if platform.machine() in ["AMD64", "x86_64"]:
+                exe_type = 'main.amd64.bin'
+            else:
+                exe_type = 'main.arm64.bin'
+        else:
+            if platform.machine() in ["AMD64", "x86_64"]:
+                exe_type = 'main.amd64.exe'
+            else:
+                exe_type = 'main.arm64.exe'
+
+        exe_path = os.path.join('.', 'route_go', 'bin', exe_type)
+
+        if os.path.exists(exe_path):
+            os.remove(exe_path)
+        
+        # https://raw.githubusercontent.com/openNAMU/GopenNAMU/beta/route_go/bin/main.amd64.bin
+        url = 'https://raw.githubusercontent.com/openNAMU/GopenNAMU/' + up_data + '/route_go/bin/' + exe_type
+
+        response = requests.get(url, stream = True)
+        if response.status_code == 200:
+            with open(exe_path, 'wb') as f:
+                for chunk in response.iter_content(chunk_size = 1024 * 1024):
+                    if chunk:
+                        f.write(chunk)
+        
+        if platform.system() == 'Linux':
+            os.system('chmod +x ./route_go/bin/' + exe_type)
+
 def set_init(conn):
     curs = conn.cursor()
 

BIN
route_go/bin/main.amd64.bin


BIN
route_go/bin/main.amd64.exe


BIN
route_go/bin/main.arm64.bin


BIN
route_go/bin/main.arm64.exe


+ 0 - 0
route_go/bin/test.txt


+ 0 - 62
route_go/go.mod

@@ -1,62 +0,0 @@
-module opennamu
-
-go 1.21
-
-toolchain go1.22.0
-
-require (
-	github.com/3th1nk/cidr v0.2.0
-	github.com/dlclark/regexp2 v1.11.0
-	github.com/go-sql-driver/mysql v1.8.1
-	github.com/google/generative-ai-go v0.11.0
-	github.com/yuin/goldmark v1.7.1
-	google.golang.org/api v0.175.0
-	modernc.org/sqlite v1.29.8
-)
-
-require (
-	cloud.google.com/go v0.112.2 // indirect
-	cloud.google.com/go/ai v0.4.0 // indirect
-	cloud.google.com/go/auth v0.2.2 // indirect
-	cloud.google.com/go/auth/oauth2adapt v0.2.1 // indirect
-	cloud.google.com/go/compute/metadata v0.3.0 // indirect
-	cloud.google.com/go/longrunning v0.5.6 // indirect
-	filippo.io/edwards25519 v1.1.0 // indirect
-	github.com/dustin/go-humanize v1.0.1 // indirect
-	github.com/felixge/httpsnoop v1.0.4 // indirect
-	github.com/go-logr/logr v1.4.1 // indirect
-	github.com/go-logr/stdr v1.2.2 // indirect
-	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
-	github.com/golang/protobuf v1.5.4 // indirect
-	github.com/google/s2a-go v0.1.7 // indirect
-	github.com/google/uuid v1.6.0 // indirect
-	github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
-	github.com/googleapis/gax-go/v2 v2.12.3 // indirect
-	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
-	github.com/mattn/go-isatty v0.0.20 // indirect
-	github.com/ncruces/go-strftime v0.1.9 // indirect
-	github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
-	go.opencensus.io v0.24.0 // indirect
-	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0 // indirect
-	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0 // indirect
-	go.opentelemetry.io/otel v1.25.0 // indirect
-	go.opentelemetry.io/otel/metric v1.25.0 // indirect
-	go.opentelemetry.io/otel/trace v1.25.0 // indirect
-	golang.org/x/crypto v0.22.0 // indirect
-	golang.org/x/net v0.24.0 // indirect
-	golang.org/x/oauth2 v0.19.0 // indirect
-	golang.org/x/sync v0.7.0 // indirect
-	golang.org/x/sys v0.19.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
-	golang.org/x/time v0.5.0 // indirect
-	google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be // indirect
-	google.golang.org/grpc v1.63.2 // indirect
-	google.golang.org/protobuf v1.33.0 // indirect
-	modernc.org/gc/v3 v3.0.0-20240304020402-f0dba7c97c2b // indirect
-	modernc.org/libc v1.49.3 // indirect
-	modernc.org/mathutil v1.6.0 // indirect
-	modernc.org/memory v1.8.0 // indirect
-	modernc.org/strutil v1.2.0 // indirect
-	modernc.org/token v1.1.0 // indirect
-)

+ 0 - 222
route_go/go.sum

@@ -1,222 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.112.2 h1:ZaGT6LiG7dBzi6zNOvVZwacaXlmf3lRqnC4DQzqyRQw=
-cloud.google.com/go v0.112.2/go.mod h1:iEqjp//KquGIJV/m+Pk3xecgKNhV+ry+vVTsy4TbDms=
-cloud.google.com/go/ai v0.4.0 h1:hoF8+joXKfW2Ug7MKssoffXCVUSxUqMUJL0hJxVtO1Q=
-cloud.google.com/go/ai v0.4.0/go.mod h1:iX72tmUodGXVDxRDCGUZEPiB9HaMeERXkOdgCkUi8sA=
-cloud.google.com/go/auth v0.2.2 h1:gmxNJs4YZYcw6YvKRtVBaF2fyUE6UrWPyzU8jHvYfmI=
-cloud.google.com/go/auth v0.2.2/go.mod h1:2bDNJWtWziDT3Pu1URxHHbkHE/BbOCuyUiKIGcNvafo=
-cloud.google.com/go/auth/oauth2adapt v0.2.1 h1:VSPmMmUlT8CkIZ2PzD9AlLN+R3+D1clXMWHHa6vG/Ag=
-cloud.google.com/go/auth/oauth2adapt v0.2.1/go.mod h1:tOdK/k+D2e4GEwfBRA48dKNQiDsqIXxLh7VU319eV0g=
-cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc=
-cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
-cloud.google.com/go/longrunning v0.5.6 h1:xAe8+0YaWoCKr9t1+aWe+OeQgN/iJK1fEgZSXmjuEaE=
-cloud.google.com/go/longrunning v0.5.6/go.mod h1:vUaDrWYOMKRuhiv6JBnn49YxCPz2Ayn9GqyjaBT8/mA=
-filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
-filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
-github.com/3th1nk/cidr v0.2.0 h1:81jjEknszD8SHPLVTPPk+BZjNVqq1ND2YXLSChl6Lrs=
-github.com/3th1nk/cidr v0.2.0/go.mod h1:XsSQnS4rEYyB2veDfnIGgViulFpIITPKtp3f0VxpiLw=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
-github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
-github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
-github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
-github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
-github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
-github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
-github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
-github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/generative-ai-go v0.11.0 h1:+wL9xu5jVIgJKC6NmZOxZsBYWDtIap7DGUZ1diQSSnk=
-github.com/google/generative-ai-go v0.11.0/go.mod h1:RauvbBjc+AzW0b1LV0VSlxHI5n2i3dz8oJfjboOSiWQ=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
-github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
-github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
-github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
-github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
-github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
-github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA=
-github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4=
-github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
-github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
-github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
-github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
-github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
-github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/yuin/goldmark v1.7.1 h1:3bajkSilaCbjdKVsKdZjZCLBNPL9pYzrCakKaf4U49U=
-github.com/yuin/goldmark v1.7.1/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0 h1:zvpPXY7RfYAGSdYQLjp6zxdJNSYD/+FFoCTQN9IPxBs=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0/go.mod h1:BMn8NB1vsxTljvuorms2hyOs8IBuuBEq0pl7ltOfy30=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0 h1:cEPbyTSEHlQR89XVlyo78gqluF8Y3oMeBkXGWzQsfXY=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0/go.mod h1:DKdbWcT4GH1D0Y3Sqt/PFXt2naRKDWtU+eE6oLdFNA8=
-go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k=
-go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg=
-go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA=
-go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s=
-go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM=
-go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
-golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
-golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
-golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg=
-golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
-golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
-golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
-golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.175.0 h1:9bMDh10V9cBuU8N45Wlc3cKkItfqMRV0Fi8UscLEtbY=
-google.golang.org/api v0.175.0/go.mod h1:Rra+ltKu14pps/4xTycZfobMgLpbosoaaL7c+SEMrO8=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be h1:Zz7rLWqp0ApfsR/l7+zSHhY3PMiH2xqgxlfYfAfNpoU=
-google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be h1:LG9vZxsWGOmUKieR8wPAUR3u3MpnYFQZROPIMaXh7/A=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
-google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-modernc.org/cc/v4 v4.20.0 h1:45Or8mQfbUqJOG9WaxvlFYOAQO0lQ5RvqBcFCXngjxk=
-modernc.org/cc/v4 v4.20.0/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
-modernc.org/ccgo/v4 v4.16.0 h1:ofwORa6vx2FMm0916/CkZjpFPSR70VwTjUCe2Eg5BnA=
-modernc.org/ccgo/v4 v4.16.0/go.mod h1:dkNyWIjFrVIZ68DTo36vHK+6/ShBn4ysU61So6PIqCI=
-modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
-modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
-modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw=
-modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
-modernc.org/gc/v3 v3.0.0-20240304020402-f0dba7c97c2b h1:BnN1t+pb1cy61zbvSUV7SeI0PwosMhlAEi/vBY4qxp8=
-modernc.org/gc/v3 v3.0.0-20240304020402-f0dba7c97c2b/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
-modernc.org/libc v1.49.3 h1:j2MRCRdwJI2ls/sGbeSk0t2bypOG/uvPZUsGQFDulqg=
-modernc.org/libc v1.49.3/go.mod h1:yMZuGkn7pXbKfoT/M35gFJOAEdSKdxL0q64sF7KqCDo=
-modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
-modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
-modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
-modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU=
-modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
-modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
-modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
-modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
-modernc.org/sqlite v1.29.8 h1:nGKglNx9K5v0As+zF0/Gcl1kMkmaU1XynYyq92PbsC8=
-modernc.org/sqlite v1.29.8/go.mod h1:lQPm27iqa4UNZpmr4Aor0MH0HkCLbt1huYDfWylLZFk=
-modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
-modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
-modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
-modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=

+ 0 - 85
route_go/main.go

@@ -1,85 +0,0 @@
-package main
-
-import (
-	"fmt"
-	"log"
-	"opennamu/route"
-	"os"
-)
-
-func main() {
-	call_arg := os.Args[1:]
-
-	log.SetFlags(log.LstdFlags | log.Lshortfile)
-
-	var route_data string
-	if call_arg[0] == "main_func_easter_egg" {
-		route_data = route.Main_func_easter_egg()
-	} else if call_arg[0] == "api_w_raw" {
-		route_data = route.Api_w_raw(call_arg[1:])
-	} else if call_arg[0] == "api_func_sha224" {
-		route_data = route.Api_func_sha224(call_arg[1:])
-	} else if call_arg[0] == "api_w_random" {
-		route_data = route.Api_w_random(call_arg[1:])
-	} else if call_arg[0] == "api_search" {
-		route_data = route.Api_search(call_arg[1:])
-	} else if call_arg[0] == "api_topic" {
-		route_data = route.Api_topic(call_arg[1:])
-	} else if call_arg[0] == "api_func_ip" {
-		route_data = route.Api_func_ip(call_arg[1:])
-	} else if call_arg[0] == "api_list_recent_change" {
-		route_data = route.Api_list_recent_change(call_arg[1:])
-	} else if call_arg[0] == "api_list_recent_edit_request" {
-		route_data = route.Api_list_recent_edit_request(call_arg[1:])
-	} else if call_arg[0] == "api_bbs" {
-		route_data = route.Api_bbs(call_arg[1:])
-	} else if call_arg[0] == "api_w_xref" {
-		route_data = route.Api_w_xref(call_arg[1:])
-	} else if call_arg[0] == "api_w_watch_list" {
-		route_data = route.Api_w_watch_list(call_arg[1:])
-	} else if call_arg[0] == "api_user_watch_list" {
-		route_data = route.Api_user_watch_list(call_arg[1:])
-	} else if call_arg[0] == "api_w_render" {
-		route_data = route.Api_w_render(call_arg[1:])
-	} else if call_arg[0] == "api_func_llm" {
-		route_data = route.Api_func_llm(call_arg[1:])
-	} else if call_arg[0] == "api_func_language" {
-		route_data = route.Api_func_language(call_arg[1:])
-	} else if call_arg[0] == "api_func_auth_list" {
-		route_data = route.Api_func_auth_list(call_arg[1:])
-	} else if call_arg[0] == "api_list_recent_discuss" {
-		route_data = route.Api_list_recent_discuss(call_arg[1:])
-	} else if call_arg[0] == "api_bbs_list" {
-		route_data = route.Api_bbs_list(call_arg[1:])
-	} else if call_arg[0] == "api_list_old_page" {
-		route_data = route.Api_list_old_page(call_arg[1:])
-	} else if call_arg[0] == "api_topic_list" {
-		route_data = route.Api_topic_list(call_arg[1:])
-	} else if call_arg[0] == "api_bbs_w_comment_n" {
-		route_data = route.Api_bbs_w_comment(call_arg[1:])
-	} else if call_arg[0] == "api_bbs_w_n" {
-		route_data = route.Api_bbs_w(call_arg[1:])
-	} else if call_arg[0] == "api_w_set_reset" {
-		route_data = route.Api_w_set_reset(call_arg[1:])
-	} else if call_arg[0] == "api_list_recent_block" {
-		route_data = route.Api_list_recent_block(call_arg[1:])
-	} else if call_arg[0] == "api_list_title_index" {
-		route_data = route.Api_list_title_index(call_arg[1:])
-	} else if call_arg[0] == "api_user_setting_editor_insert" {
-		route_data = route.Api_user_setting_editor_insert(call_arg[1:])
-	} else if call_arg[0] == "api_user_setting_editor_delete" {
-		route_data = route.Api_user_setting_editor_delete(call_arg[1:])
-	} else if call_arg[0] == "api_user_setting_editor" {
-		route_data = route.Api_user_setting_editor(call_arg[1:])
-	} else if call_arg[0] == "api_setting" {
-		route_data = route.Api_setting(call_arg[1:])
-	} else if call_arg[0] == "api_setting_edit" {
-		route_data = route.Api_setting_edit(call_arg[1:])
-	} else if call_arg[0] == "api_func_ip_menu" {
-		route_data = route.Api_func_ip_menu(call_arg[1:])
-	} else {
-		log.Fatal(call_arg[0] + " is 404")
-	}
-
-	fmt.Print(route_data)
-}

+ 0 - 143
route_go/route/api_bbs.go

@@ -1,143 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_bbs(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	var rows []*sql.Rows
-	if other_set["bbs_num"] == "" {
-		var err error
-
-		row, err := db.Query(tool.DB_change("select set_code, set_id, '0' from bbs_data where set_name = 'date' order by set_data desc limit 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows = append(rows, row)
-	} else {
-		page, _ := strconv.Atoi(other_set["page"])
-		num := 0
-		if page*50 > 0 {
-			num = page*50 - 50
-		}
-
-		stmt, err := db.Prepare(tool.DB_change("select set_code, set_id, '1' from bbs_data where set_name = 'pinned' and set_id like ? order by set_data desc"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		row, err := stmt.Query(other_set["bbs_num"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows = append(rows, row)
-
-		stmt, err = db.Prepare(tool.DB_change("select set_code, set_id, '0' from bbs_data where set_name = 'title' and set_id like ? order by set_code + 0 desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		row, err = stmt.Query(other_set["bbs_num"], num)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows = append(rows, row)
-	}
-
-	var data_list []map[string]string
-	ip_parser_temp := map[string][]string{}
-
-	for for_a := 0; for_a < len(rows); for_a++ {
-		defer rows[for_a].Close()
-
-		for rows[for_a].Next() {
-			temp_data := make(map[string]string)
-
-			var set_code string
-			var set_id string
-			var pinned string
-
-			err := rows[for_a].Scan(&set_code, &set_id, &pinned)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			temp_data["set_code"] = set_code
-			temp_data["set_id"] = set_id
-			temp_data["pinned"] = pinned
-
-			stmt, err := db.Prepare(tool.DB_change("select set_name, set_data, set_code, set_id from bbs_data where set_code = ? and set_id = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			rows, err := stmt.Query(set_code, set_id)
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer rows.Close()
-
-			for rows.Next() {
-				var set_name string
-				var set_data string
-
-				err := rows.Scan(&set_name, &set_data, &set_code, &set_id)
-				if err != nil {
-					log.Fatal(err)
-				}
-
-				if set_name == "user_id" {
-					var ip_pre string
-					var ip_render string
-
-					if _, ok := ip_parser_temp[set_data]; ok {
-						ip_pre = ip_parser_temp[set_data][0]
-						ip_render = ip_parser_temp[set_data][1]
-					} else {
-						ip_pre = tool.IP_preprocess(db, set_data, other_set["ip"])[0]
-						ip_render = tool.IP_parser(db, set_data, other_set["ip"])
-
-						ip_parser_temp[set_data] = []string{ip_pre, ip_render}
-					}
-
-					set_data = ip_pre
-					temp_data["user_id_render"] = ip_render
-				}
-
-				if set_name != "data" && set_name != "pinned" {
-					temp_data[set_name] = set_data
-				}
-			}
-
-			data_list = append(data_list, temp_data)
-		}
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{}
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 93
route_go/route/api_bbs_list.go

@@ -1,93 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func bbs_list(db *sql.DB) map[string]string {
-	rows, err := db.Query(tool.DB_change("select set_data, set_id from bbs_set where set_name = 'bbs_name'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	data_list := map[string]string{}
-
-	for rows.Next() {
-		var name string
-		var id string
-
-		err := rows.Scan(&name, &id)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		data_list[name] = id
-	}
-
-	return data_list
-}
-
-func Api_bbs_list(call_arg []string) string {
-	db := tool.DB_connect()
-	defer db.Close()
-
-	data_list := bbs_list(db)
-	data_list_sub := map[string][]string{}
-
-	for k, v := range data_list {
-		stmt, err := db.Prepare(tool.DB_change("select set_data from bbs_set where set_name = 'bbs_type' and set_id = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var bbs_type string
-
-		err = stmt.QueryRow(v).Scan(&bbs_type)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				bbs_type = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("select set_data from bbs_data where set_id = ? and set_name = 'date' order by set_code + 0 desc limit 1"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var bbs_date string
-
-		err = stmt.QueryRow(v).Scan(&bbs_date)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				bbs_date = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		data_list_sub[k] = []string{v, bbs_type, bbs_date}
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{
-		"thread_base":  tool.Get_language(db, "thread_base", false),
-		"comment_base": tool.Get_language(db, "comment_base", false),
-	}
-
-	if len(data_list_sub) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list_sub
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 42
route_go/route/api_bbs_w.go

@@ -1,42 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_bbs_w(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	stmt, err := db.Prepare(tool.DB_change("select set_name, set_data from bbs_data where set_id = ? and set_code = ?"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(other_set["bbs_num"], other_set["post_num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	data_list := map[string]string{}
-
-	for rows.Next() {
-		var set_name string
-		var set_data string
-
-		data_list[set_name] = set_data
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{}
-	return_data["data"] = data_list
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 71
route_go/route/api_bbs_w_comment.go

@@ -1,71 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_bbs_w_comment(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if other_set["tool"] == "length" {
-		stmt, err := db.Prepare(tool.DB_change("select count(*) from bbs_data where set_name = 'comment_date' and set_id = ? order by set_code + 0 desc"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var comment_length string
-		bbs_and_post_num := other_set["bbs_num"] + "-" + other_set["post_num"]
-
-		err = stmt.QueryRow(bbs_and_post_num).Scan(&comment_length)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				comment_length = "0"
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("select count(*) from bbs_data where set_name = 'comment_date' and set_id like ? order by set_code + 0 desc"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var reply_length string
-
-		err = stmt.QueryRow(bbs_and_post_num + "-%").Scan(&reply_length)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				reply_length = "0"
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		comment_length_int, _ := strconv.Atoi(comment_length)
-		reply_length_int, _ := strconv.Atoi(reply_length)
-
-		length_int := comment_length_int + reply_length_int
-		length_str := strconv.Itoa(length_int)
-
-		data_list := map[string]string{
-			"comment": comment_length,
-			"reply":   reply_length,
-			"data":    length_str,
-		}
-
-		json_data, _ := json.Marshal(data_list)
-		return string(json_data)
-	} else {
-		return ""
-	}
-}

+ 0 - 24
route_go/route/api_edit_move_all.go

@@ -1,24 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"opennamu/route/tool"
-)
-
-func Api_edit_move_all(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if other_set["select"] == "include" {
-
-	} else if other_set["select"] == "start" {
-
-	} else {
-
-	}
-
-	return ""
-}

+ 0 - 20
route_go/route/api_func_auth_list.go

@@ -1,20 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"opennamu/route/tool"
-)
-
-func Api_func_auth_list(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	auth_name := tool.Get_user_auth(db, other_set["ip"])
-	auth_info := tool.Get_auth_group_info(db, auth_name)
-
-	json_data, _ := json.Marshal(auth_info)
-	return string(json_data)
-}

+ 0 - 23
route_go/route/api_func_ip.go

@@ -1,23 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-
-	"opennamu/route/tool"
-)
-
-func Api_func_ip(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	ip_data := tool.IP_parser(db, other_set["data"], other_set["ip"])
-
-	new_data := map[string]string{}
-	new_data["data"] = ip_data
-
-	json_data, _ := json.Marshal(new_data)
-	return string(json_data)
-}

+ 0 - 23
route_go/route/api_func_ip_menu.go

@@ -1,23 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-
-	"opennamu/route/tool"
-)
-
-func Api_func_ip_menu(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	ip_data := tool.IP_menu(db, other_set["ip"], other_set["my_ip"], other_set["option"])
-
-	new_data := make(map[string]interface{})
-	new_data["data"] = ip_data
-
-	json_data, _ := json.Marshal(new_data)
-	return string(json_data)
-}

+ 0 - 26
route_go/route/api_func_language.go

@@ -1,26 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"opennamu/route/tool"
-)
-
-func Api_func_language(call_arg []string) string {
-	other_set := make(map[string]interface{})
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	data_list := map[string][]string{}
-	data_list["data"] = []string{}
-
-	temp_list := other_set["data"].([]interface{})
-
-	for for_a := 0; for_a < len(temp_list); for_a++ {
-		data_list["data"] = append(data_list["data"], tool.Get_language(db, temp_list[for_a].(string), false))
-	}
-
-	json_data, _ := json.Marshal(data_list)
-	return string(json_data)
-}

+ 0 - 56
route_go/route/api_func_llm.go

@@ -1,56 +0,0 @@
-package route
-
-import (
-	"context"
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-
-	"github.com/google/generative-ai-go/genai"
-	"google.golang.org/api/option"
-)
-
-func Api_func_llm(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	var api_key string
-
-	stmt, err := db.Prepare(tool.DB_change("select data from user_set where name = 'llm_api_key' and id = ?"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	err = stmt.QueryRow(other_set["ip"]).Scan(api_key)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			api_key = ""
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	ctx := context.Background()
-
-	client, err := genai.NewClient(ctx, option.WithAPIKey(api_key))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer client.Close()
-
-	model := client.GenerativeModel("gemini-pro")
-	resp, err := model.GenerateContent(ctx, genai.Text(other_set["prompt"]))
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	text := resp.Candidates[0].Content.Parts[0]
-
-	json_data, _ := json.Marshal(map[string]genai.Part{"data": text})
-	return string(json_data)
-}

+ 0 - 19
route_go/route/api_func_sha224.go

@@ -1,19 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-
-	"opennamu/route/tool"
-)
-
-func Api_func_sha224(call_arg []string) string {
-	data := call_arg[0]
-
-	hash_str := tool.Sha224(data)
-
-	new_data := map[string]string{}
-	new_data["data"] = hash_str
-
-	json_data, _ := json.Marshal(new_data)
-	return string(json_data)
-}

+ 0 - 78
route_go/route/api_list_old_page.go

@@ -1,78 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_old_page(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * 50) - 50
-	} else {
-		page_int = 0
-	}
-
-	var stmt *sql.Stmt
-
-	if other_set["set_type"] == "old" {
-		stmt, err = db.Prepare(tool.DB_change("select doc_name, set_data from data_set where set_name = 'last_edit' and doc_rev = '' and not (doc_name) in (select doc_name from data_set where set_name = 'doc_type' and set_data != '') order by set_data asc limit ?, 50"))
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select doc_name, set_data from data_set where set_name = 'last_edit' and doc_rev = '' and not (doc_name) in (select doc_name from data_set where set_name = 'doc_type' and set_data != '') order by set_data desc limit ?, 50"))
-	}
-
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(page_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list [][]string
-
-	for rows.Next() {
-		var doc_name string
-		var date string
-
-		err := rows.Scan(&doc_name, &date)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("select set_data from data_set where doc_name = ? and set_name = 'doc_type'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		data_list = append(data_list, []string{doc_name, date})
-	}
-
-	return_data := make(map[string]interface{})
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 185
route_go/route/api_list_recent_block.go

@@ -1,185 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_recent_block(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * 50) - 50
-	} else {
-		page_int = 0
-	}
-
-	var stmt *sql.Stmt
-	var rows *sql.Rows
-	if other_set["set_type"] == "all" {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb order by today desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else if other_set["set_type"] == "ongoing" {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb where ongoing = '1' order by end desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else if other_set["set_type"] == "regex" {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb where band = 'regex' order by today desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else if other_set["set_type"] == "user" {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb where block = ? order by today desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(other_set["user_name"], page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else if other_set["set_type"] == "cidr" {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb where band = 'cidr' order by today desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select why, block, blocker, end, today, band, ongoing from rb where blocker = ? order by today desc limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		rows, err = stmt.Query(other_set["user_name"], page_int)
-		if err != nil {
-			log.Fatal(err)
-		}
-	}
-
-	defer stmt.Close()
-	defer rows.Close()
-
-	var data_list [][]string
-	ip_parser_temp := map[string][]string{}
-
-	for rows.Next() {
-		var why string
-		var block string
-		var blocker string
-		var end string
-		var today string
-		var band string
-		var ongoing string
-
-		err := rows.Scan(&why, &block, &blocker, &end, &today, &band, &ongoing)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		var ip_pre_blocker string
-		var ip_render_blocker string
-
-		if _, ok := ip_parser_temp[blocker]; ok {
-			ip_pre_blocker = ip_parser_temp[blocker][0]
-			ip_render_blocker = ip_parser_temp[blocker][1]
-		} else {
-			ip_pre_blocker = tool.IP_preprocess(db, blocker, other_set["ip"])[0]
-			ip_render_blocker = tool.IP_parser(db, blocker, other_set["ip"])
-
-			ip_parser_temp[blocker] = []string{ip_pre_blocker, ip_render_blocker}
-		}
-
-		var ip_pre_block string
-		var ip_render_block string
-
-		if band == "" {
-			if _, ok := ip_parser_temp[block]; ok {
-				ip_pre_block = ip_parser_temp[block][0]
-				ip_render_block = ip_parser_temp[block][1]
-			} else {
-				ip_pre_block = tool.IP_preprocess(db, block, other_set["ip"])[0]
-				ip_render_block = tool.IP_parser(db, block, other_set["ip"])
-
-				ip_parser_temp[block] = []string{ip_pre_block, ip_render_block}
-			}
-		} else {
-			ip_pre_block = block
-			ip_render_block = block
-		}
-
-		data_list = append(data_list, []string{
-			why,
-			ip_pre_block,
-			ip_render_block,
-			ip_pre_blocker,
-			ip_render_blocker,
-			end,
-			today,
-			band,
-			ongoing,
-		})
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{
-		"all":         tool.Get_language(db, "all", false),
-		"regex":       tool.Get_language(db, "regex", false),
-		"cidr":        tool.Get_language(db, "cidr", false),
-		"in_progress": tool.Get_language(db, "in_progress", false),
-		"admin":       tool.Get_language(db, "admin", false),
-		"blocked":     tool.Get_language(db, "blocked", false),
-		"limitless":   tool.Get_language(db, "limitless", false),
-		"release":     tool.Get_language(db, "release", false),
-		"start":       tool.Get_language(db, "start", false),
-		"end":         tool.Get_language(db, "end", false),
-		"ban":         tool.Get_language(db, "ban", false),
-	}
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	auth_name := tool.Get_user_auth(db, other_set["ip"])
-	auth_info := tool.Get_auth_group_info(db, auth_name)
-
-	return_data["auth"] = auth_info
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 169
route_go/route/api_list_recent_change.go

@@ -1,169 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_recent_change(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	set_type := other_set["set_type"]
-	if set_type == "edit" {
-		set_type = ""
-	}
-
-	limit_int, err := strconv.Atoi(other_set["limit"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if limit_int > 50 || limit_int < 0 {
-		limit_int = 50
-	}
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * limit_int) - limit_int
-	} else {
-		page_int = 0
-	}
-
-	stmt, err := db.Prepare(tool.DB_change("select id, title from rc where type = ? order by date desc limit ?, ?"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(set_type, page_int, limit_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list [][]string
-
-	admin_auth := tool.Get_user_auth(db, other_set["ip"])
-	ip_parser_temp := map[string][]string{}
-
-	for rows.Next() {
-		var id string
-		var title string
-
-		err := rows.Scan(&id, &title)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		var date string
-		var ip string
-		var send string
-		var leng string
-		var hide string
-		var type_data string
-
-		stmt, err := db.Prepare(tool.DB_change("select date, ip, send, leng, hide, type from history where id = ? and title = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(id, title).Scan(&date, &ip, &send, &leng, &hide, &type_data)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				date = ""
-				ip = ""
-				send = ""
-				leng = ""
-				hide = ""
-				type_data = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		var ip_pre string
-		var ip_render string
-
-		if _, ok := ip_parser_temp[ip]; ok {
-			ip_pre = ip_parser_temp[ip][0]
-			ip_render = ip_parser_temp[ip][1]
-		} else {
-			ip_pre = tool.IP_preprocess(db, ip, other_set["ip"])[0]
-			ip_render = tool.IP_parser(db, ip, other_set["ip"])
-
-			ip_parser_temp[ip] = []string{ip_pre, ip_render}
-		}
-
-		if hide == "" || admin_auth != "" {
-			data_list = append(data_list, []string{
-				id,
-				title,
-				date,
-				ip_pre,
-				send,
-				leng,
-				hide,
-				ip_render,
-				type_data,
-			})
-		} else {
-			data_list = append(data_list, []string{"", "", "", "", "", "", hide, "", ""})
-		}
-	}
-
-	if other_set["legacy"] != "" {
-		if len(data_list) == 0 {
-			return "{}"
-		} else {
-			json_data, _ := json.Marshal(data_list)
-			return string(json_data)
-		}
-	} else {
-		auth_name := tool.Get_user_auth(db, other_set["ip"])
-		auth_info := tool.Get_auth_group_info(db, auth_name)
-
-		return_data := make(map[string]interface{})
-		return_data["language"] = map[string]string{
-			"tool":           tool.Get_language(db, "tool", false),
-			"normal":         tool.Get_language(db, "normal", false),
-			"edit":           tool.Get_language(db, "edit", false),
-			"move":           tool.Get_language(db, "move", false),
-			"delete":         tool.Get_language(db, "delete", false),
-			"revert":         tool.Get_language(db, "revert", false),
-			"new_doc":        tool.Get_language(db, "new_doc", false),
-			"edit_request":   tool.Get_language(db, "edit_request", false),
-			"user_document":  tool.Get_language(db, "user_document", false),
-			"raw":            tool.Get_language(db, "raw", false),
-			"compare":        tool.Get_language(db, "compare", false),
-			"history":        tool.Get_language(db, "history", false),
-			"hide":           tool.Get_language(db, "hide", false),
-			"history_delete": tool.Get_language(db, "history_delete", false),
-			"send_edit":      tool.Get_language(db, "send_edit", false),
-			"file":           tool.Get_language(db, "file", false),
-			"category":       tool.Get_language(db, "category", false),
-			"setting":        tool.Get_language(db, "setting", false),
-		}
-		return_data["auth"] = auth_info
-
-		if len(data_list) == 0 {
-			return_data["data"] = map[string]string{}
-		} else {
-			return_data["data"] = data_list
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 152
route_go/route/api_list_recent_discuss.go

@@ -1,152 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_recent_discuss(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	limit_int, err := strconv.Atoi(other_set["limit"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if limit_int > 50 || limit_int < 0 {
-		limit_int = 50
-	}
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * limit_int) - limit_int
-	} else {
-		page_int = 0
-	}
-
-	var stmt *sql.Stmt
-
-	set_type := other_set["set_type"]
-	if set_type == "normal" {
-		stmt, err = db.Prepare(tool.DB_change("select title, sub, date, code, stop, agree from rd order by date desc limit ?, ?"))
-	} else if set_type == "close" {
-		stmt, err = db.Prepare(tool.DB_change("select title, sub, date, code, stop, agree from rd where stop = 'O' order by date desc limit ?, ?"))
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select title, sub, date, code, stop, agree from rd where stop != 'O' order by date desc limit ?, ?"))
-	}
-
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(page_int, limit_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list [][]string
-	ip_parser_temp := map[string][]string{}
-
-	for rows.Next() {
-		var title string
-		var sub string
-		var date string
-		var code string
-		var stop string
-		var agree string
-
-		err := rows.Scan(&title, &sub, &date, &code, &stop, &agree)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err := db.Prepare(tool.DB_change("select ip, id from topic where code = ? order by id + 0 desc limit 1"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var ip string
-		var id string
-
-		err = stmt.QueryRow(code).Scan(&ip, &id)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				ip = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		var ip_pre string
-		var ip_render string
-
-		if _, ok := ip_parser_temp[ip]; ok {
-			ip_pre = ip_parser_temp[ip][0]
-			ip_render = ip_parser_temp[ip][1]
-		} else {
-			ip_pre = tool.IP_preprocess(db, ip, other_set["ip"])[0]
-			ip_render = tool.IP_parser(db, ip, other_set["ip"])
-
-			ip_parser_temp[ip] = []string{ip_pre, ip_render}
-		}
-
-		data_list = append(data_list, []string{
-			title,
-			sub,
-			date,
-			code,
-			stop,
-			ip_pre,
-			ip_render,
-			id,
-			agree,
-		})
-	}
-
-	if other_set["legacy"] != "" {
-		if len(data_list) == 0 {
-			return "{}"
-		} else {
-			json_data, _ := json.Marshal(data_list)
-			return string(json_data)
-		}
-	} else {
-		auth_name := tool.Get_user_auth(db, other_set["ip"])
-		auth_info := tool.Get_auth_group_info(db, auth_name)
-
-		return_data := make(map[string]interface{})
-		return_data["language"] = map[string]string{
-			"tool":              tool.Get_language(db, "tool", false),
-			"normal":            tool.Get_language(db, "normal", false),
-			"close_discussion":  tool.Get_language(db, "close_discussion", false),
-			"open_discussion":   tool.Get_language(db, "open_discussion", false),
-			"closed":            tool.Get_language(db, "closed", false),
-			"agreed_discussion": tool.Get_language(db, "agreed_discussion", false),
-			"stop":              tool.Get_language(db, "stop", false),
-		}
-		return_data["auth"] = auth_info
-
-		if len(data_list) == 0 {
-			return_data["data"] = map[string]string{}
-		} else {
-			return_data["data"] = data_list
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 116
route_go/route/api_list_recent_edit_request.go

@@ -1,116 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_recent_edit_request(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	limit_int, err := strconv.Atoi(other_set["limit"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if limit_int > 50 || limit_int < 0 {
-		limit_int = 50
-	}
-
-	stmt, err := db.Prepare(tool.DB_change("select doc_name, doc_rev, set_data from data_set where set_name = 'edit_request_doing' order by set_data desc limit ?"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(limit_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var doc_name string
-	var doc_rev string
-	var date string
-
-	var data_list [][]string
-	for rows.Next() {
-		err := rows.Scan(&doc_name, &doc_rev, &date)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		var ip string
-		var send string
-		var leng string
-
-		stmt, err := db.Prepare(tool.DB_change("select set_data from data_set where set_name = 'edit_request_user' and doc_rev = ? and doc_name = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(doc_rev, doc_name).Scan(&ip)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				ip = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("select set_data from data_set where set_name = 'edit_request_send' and doc_rev = ? and doc_name = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(doc_rev, doc_name).Scan(&send)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				send = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("select set_data from data_set where set_name = 'edit_request_leng' and doc_rev = ? and doc_name = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(doc_rev, doc_name).Scan(&leng)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				leng = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		data_list = append(data_list, []string{
-			doc_name,
-			doc_rev,
-			date,
-			tool.IP_preprocess(db, ip, other_set["ip"])[0],
-			send,
-			leng,
-			tool.IP_parser(db, ip, other_set["ip"]),
-		})
-	}
-
-	if len(data_list) == 0 {
-		return "{}"
-	} else {
-		json_data, _ := json.Marshal(data_list)
-		return string(json_data)
-	}
-}

+ 0 - 63
route_go/route/api_list_title_index.go

@@ -1,63 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_title_index(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * 50) - 50
-	} else {
-		page_int = 0
-	}
-
-	stmt, err := db.Prepare(tool.DB_change("select title from data limit ?, 50"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(page_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list []string
-
-	for rows.Next() {
-		var title string
-
-		err := rows.Scan(&title)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		data_list = append(data_list, title)
-	}
-
-	return_data := make(map[string]interface{})
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 87
route_go/route/api_search.go

@@ -1,87 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"strconv"
-
-	"opennamu/route/tool"
-)
-
-func Api_search(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	page, _ := strconv.Atoi(other_set["num"])
-	num := 0
-	if page*50 > 0 {
-		num = page*50 - 50
-	}
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if other_set["search_type"] == "title" {
-		stmt, err := db.Prepare(tool.DB_change("select title from data where title collate nocase like ? order by title limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var title string
-		var title_list []string
-
-		rows, err := stmt.Query("%"+other_set["name"]+"%", num)
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer rows.Close()
-
-		for rows.Next() {
-			err := rows.Scan(&title)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			title_list = append(title_list, title)
-		}
-
-		if len(title_list) == 0 {
-			return "{}"
-		} else {
-			json_data, _ := json.Marshal(title_list)
-			return string(json_data)
-		}
-	} else {
-		stmt, err := db.Prepare(tool.DB_change("select title from data where data collate nocase like ? order by title limit ?, 50"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var title string
-		var title_list []string
-
-		rows, err := stmt.Query("%"+other_set["name"]+"%", num)
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer rows.Close()
-
-		for rows.Next() {
-			err := rows.Scan(&title)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			title_list = append(title_list, title)
-		}
-
-		if len(title_list) == 0 {
-			return "{}"
-		} else {
-			json_data, _ := json.Marshal(title_list)
-			return string(json_data)
-		}
-	}
-}

+ 0 - 66
route_go/route/api_setting.go

@@ -1,66 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_setting(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	setting_acl := map[string]string{}
-
-	setting_acl["manage_404_page"] = ""
-	setting_acl["manage_404_page_content"] = ""
-
-	if val, ok := setting_acl[other_set["set_name"]]; ok {
-		if val != "" {
-			auth_name := tool.Get_user_auth(db, other_set["ip"])
-			auth_info := tool.Get_auth_group_info(db, auth_name)
-
-			if _, ok := auth_info["owner"]; !ok {
-				return_data := make(map[string]interface{})
-				return_data["response"] = "require auth"
-
-				json_data, _ := json.Marshal(return_data)
-				return string(json_data)
-			}
-		}
-
-		stmt, err := db.Prepare(tool.DB_change("select data from other where name = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var set_data string
-
-		err = stmt.QueryRow(other_set["set_name"]).Scan(&set_data)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				set_data = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-		return_data["data"] = set_data
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "not exist"
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 54
route_go/route/api_setting_edit.go

@@ -1,54 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_setting_edit(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	auth_name := tool.Get_user_auth(db, other_set["ip"])
-	auth_info := tool.Get_auth_group_info(db, auth_name)
-
-	if _, ok := auth_info["owner"]; ok {
-		stmt, err := db.Prepare(tool.DB_change("delete from other where name = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(other_set["set_name"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("insert into other (name, data, coverage) values (?, ?, '')"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(other_set["set_name"], other_set["data"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "require auth"
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 138
route_go/route/api_topic.go

@@ -1,138 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-
-	"opennamu/route/tool"
-)
-
-func Api_topic(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if other_set["tool"] == "length" {
-		stmt, err := db.Prepare(tool.DB_change("select id from topic where code = ? order by id + 0 desc limit 1"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var length string
-		err = stmt.QueryRow(other_set["topic_num"]).Scan(&length)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				length = "0"
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		new_data := map[string]string{}
-		new_data["length"] = length
-
-		json_data, _ := json.Marshal(new_data)
-		return string(json_data)
-	} else {
-		var rows *sql.Rows
-
-		if other_set["tool"] == "top" {
-			stmt, err := db.Prepare(tool.DB_change("select id, data, date, ip, block, top from topic where code = ? and top = 'O' order by id + 0 asc"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			rows, err = stmt.Query(other_set["topic_num"])
-			if err != nil {
-				log.Fatal(err)
-			}
-		} else {
-			if other_set["s_num"] != "" && other_set["e_num"] != "" {
-				stmt, err := db.Prepare(tool.DB_change("select id, data, date, ip, block, top from topic where code = ? and ? + 0 <= id + 0 and id + 0 <= ? + 0 order by id + 0 asc"))
-				if err != nil {
-					log.Fatal(err)
-				}
-				defer stmt.Close()
-
-				rows, err = stmt.Query(other_set["topic_num"], other_set["s_num"], other_set["e_num"])
-				if err != nil {
-					log.Fatal(err)
-				}
-			} else {
-				stmt, err := db.Prepare(tool.DB_change("select id, data, date, ip, block, top from topic where code = ? order by id + 0 asc"))
-				if err != nil {
-					log.Fatal(err)
-				}
-				defer stmt.Close()
-
-				rows, err = stmt.Query(other_set["topic_num"])
-				if err != nil {
-					log.Fatal(err)
-				}
-			}
-		}
-		defer rows.Close()
-
-		var id, data, date, ip, block, top string
-		var data_list [][]string
-		ip_parser_temp := map[string][]string{}
-
-		for rows.Next() {
-			err := rows.Scan(&id, &data, &date, &ip, &block, &top)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			data_list = append(data_list, []string{id, data, date, ip, block, top})
-		}
-
-		new_data := make(map[string]interface{})
-		new_data["data"] = []map[string]string{}
-		data_slice := []map[string]string{}
-
-		admin_auth := tool.Get_user_auth(db, other_set["ip"])
-
-		var ip_pre string
-		var ip_render string
-
-		for for_a := 0; for_a < len(data_list); for_a++ {
-			data := ""
-			if data_list[for_a][4] != "O" || admin_auth != "" {
-				data = data_list[for_a][1]
-			}
-
-			if _, ok := ip_parser_temp[data_list[for_a][3]]; ok {
-				ip_pre = ip_parser_temp[data_list[for_a][3]][0]
-				ip_render = ip_parser_temp[data_list[for_a][3]][1]
-			} else {
-				ip_pre = tool.IP_preprocess(db, data_list[for_a][3], other_set["ip"])[0]
-				ip_render = tool.IP_parser(db, data_list[for_a][3], other_set["ip"])
-
-				ip_parser_temp[data_list[for_a][3]] = []string{ip_pre, ip_render}
-			}
-
-			data_slice = append(data_slice, map[string]string{
-				"id":        data_list[for_a][0],
-				"data":      data,
-				"date":      data_list[for_a][2],
-				"ip":        ip_pre,
-				"ip_render": ip_render,
-				"blind":     data_list[for_a][4],
-			})
-		}
-
-		new_data["data"] = data_slice
-		new_data["language"] = map[string]string{
-			"tool":   tool.Get_language(db, "tool", false),
-			"render": tool.Get_language(db, "render", false),
-		}
-
-		json_data, _ := json.Marshal(new_data)
-		return string(json_data)
-	}
-}

+ 0 - 115
route_go/route/api_topic_list.go

@@ -1,115 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_topic_list(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page_int, err := strconv.Atoi(other_set["num"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if page_int > 0 {
-		page_int = (page_int * 50) - 50
-	} else {
-		page_int = 0
-	}
-
-	stmt, err := db.Prepare(tool.DB_change("select code, sub, stop, agree, date from rd where title = ? order by sub asc limit ?, 50"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(other_set["name"], page_int)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list [][]string
-	ip_parser_temp := map[string][]string{}
-
-	for rows.Next() {
-		var code string
-		var sub string
-		var stop string
-		var agree string
-		var date string
-
-		err := rows.Scan(&code, &sub, &stop, &agree, &date)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err := db.Prepare(tool.DB_change("select ip, id from topic where code = ? order by id + 0 desc limit 1"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var ip string
-		var id string
-
-		err = stmt.QueryRow(code).Scan(&ip, &id)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				ip = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		var ip_pre string
-		var ip_render string
-
-		if _, ok := ip_parser_temp[ip]; ok {
-			ip_pre = ip_parser_temp[ip][0]
-			ip_render = ip_parser_temp[ip][1]
-		} else {
-			ip_pre = tool.IP_preprocess(db, ip, other_set["ip"])[0]
-			ip_render = tool.IP_parser(db, ip, other_set["ip"])
-
-			ip_parser_temp[ip] = []string{ip_pre, ip_render}
-		}
-
-		data_list = append(data_list, []string{
-			code,
-			sub,
-			stop,
-			agree,
-			ip_pre,
-			ip_render,
-			date,
-			id,
-		})
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{
-		"closed":            tool.Get_language(db, "closed", false),
-		"agreed_discussion": tool.Get_language(db, "agreed_discussion", false),
-		"make_new_topic":    tool.Get_language(db, "make_new_topic", false),
-		"stop":              tool.Get_language(db, "stop", false),
-	}
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 64
route_go/route/api_user_setting_editor.go

@@ -1,64 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_user_setting_editor(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	ip := other_set["ip"]
-	if !tool.IP_or_user(ip) {
-		stmt, err := db.Prepare(tool.DB_change("select data from user_set where id = ? and name = 'user_editor_top'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		rows, err := stmt.Query(ip)
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer rows.Close()
-
-		var data_list []string
-
-		for rows.Next() {
-			var data string
-
-			err := rows.Scan(&data)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			data_list = append(data_list, data)
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-
-		if len(data_list) == 0 {
-			return_data["data"] = map[string]string{}
-		} else {
-			return_data["data"] = data_list
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "require auth"
-		return_data["language"] = map[string]string{
-			"authority_error": tool.Get_language(db, "authority_error", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 47
route_go/route/api_user_setting_editor_delele.go

@@ -1,47 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_user_setting_editor_delete(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	ip := other_set["ip"]
-	if !tool.IP_or_user(ip) {
-		stmt, err := db.Prepare(tool.DB_change("delete from user_set where id = ? and name = 'user_editor_top' and data = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(ip, other_set["data"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-		return_data["language"] = map[string]string{
-			"delete": tool.Get_language(db, "delete", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "require auth"
-		return_data["language"] = map[string]string{
-			"authority_error": tool.Get_language(db, "authority_error", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 48
route_go/route/api_user_setting_editor_insert.go

@@ -1,48 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_user_setting_editor_insert(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	ip := other_set["ip"]
-
-	if !tool.IP_or_user(ip) {
-		stmt, err := db.Prepare(tool.DB_change("insert into user_set (id, name, data) values (?, 'user_editor_top', ?)"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(ip, other_set["data"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-		return_data["language"] = map[string]string{
-			"save": tool.Get_language(db, "save", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "require auth"
-		return_data["language"] = map[string]string{
-			"authority_error": tool.Get_language(db, "authority_error", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 75
route_go/route/api_user_watch_list.go

@@ -1,75 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_user_watch_list(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page, _ := strconv.Atoi(other_set["num"])
-	num := 0
-	if page*50 > 0 {
-		num = page*50 - 50
-	}
-
-	ip := other_set["ip"]
-	name := other_set["name"]
-	if ip != name && tool.Get_user_auth(db, ip) == "" {
-		return "{}"
-	}
-
-	var stmt *sql.Stmt
-	var err error
-	if other_set["do_type"] == "star_doc" {
-		stmt, err = db.Prepare(tool.DB_change("select data from user_set where name = 'star_doc' and id = ? limit ?, 50"))
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select data from user_set where name = 'watchlist' and id = ? limit ?, 50"))
-	}
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(name, num)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list []string
-
-	for rows.Next() {
-		var title_data string
-
-		err := rows.Scan(&title_data)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		data_list = append(data_list, title_data)
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{
-		"watchlist": tool.Get_language(db, "watchlist", false),
-		"star_doc":  tool.Get_language(db, "star_doc", false),
-	}
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 31
route_go/route/api_w_random.go

@@ -1,31 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-
-	"opennamu/route/tool"
-)
-
-func Api_w_random(call_arg []string) string {
-	db := tool.DB_connect()
-	defer db.Close()
-
-	var title string
-
-	err := db.QueryRow(tool.DB_change("select title from data where title not like 'user:%' and title not like 'category:%' and title not like 'file:%' order by random() limit 1")).Scan(&title)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			title = ""
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	new_data := map[string]string{}
-	new_data["data"] = title
-
-	json_data, _ := json.Marshal(new_data)
-	return string(json_data)
-}

+ 0 - 86
route_go/route/api_w_raw.go

@@ -1,86 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-
-	"opennamu/route/tool"
-)
-
-func Api_w_raw(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if other_set["exist_check"] != "" {
-		stmt, err := db.Prepare(tool.DB_change("select title from data where title = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		new_data := map[string]string{}
-		var title string
-
-		err = stmt.QueryRow(other_set["name"]).Scan(&title)
-		if err != nil {
-			if err == sql.ErrNoRows {
-			} else {
-				log.Fatal(err)
-			}
-		} else {
-			new_data["exist"] = "1"
-		}
-
-		json_data, _ := json.Marshal(new_data)
-		return string(json_data)
-	} else {
-		new_data := map[string]string{}
-		var data string
-
-		if other_set["rev"] != "" {
-			stmt, err := db.Prepare(tool.DB_change("select data from history where title = ? and id = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(other_set["name"], other_set["rev"]).Scan(&data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-				} else {
-					log.Fatal(err)
-				}
-			} else {
-				new_data["title"] = other_set["name"]
-				new_data["data"] = data
-			}
-
-			json_data, _ := json.Marshal(new_data)
-			return string(json_data)
-		} else {
-			stmt, err := db.Prepare(tool.DB_change("select data from data where title = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(other_set["name"]).Scan(&data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-				} else {
-					log.Fatal(err)
-				}
-			} else {
-				new_data["title"] = other_set["name"]
-				new_data["data"] = data
-			}
-
-			json_data, _ := json.Marshal(new_data)
-			return string(json_data)
-		}
-	}
-}

+ 0 - 19
route_go/route/api_w_render.go

@@ -1,19 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"opennamu/route/tool"
-)
-
-func Api_w_render(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	data := tool.Get_render(db, other_set["doc_name"], other_set["data"], other_set["render_type"])
-
-	json_data, _ := json.Marshal(data)
-	return string(json_data)
-}

+ 0 - 81
route_go/route/api_w_set_reset.go

@@ -1,81 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-)
-
-func Api_w_set_reset(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	doc_name := other_set["name"]
-	ip := other_set["ip"]
-	auth_name := tool.Get_user_auth(db, ip)
-	auth_info := tool.Get_auth_group_info(db, auth_name)
-
-	if auth_info["owner"] {
-		stmt, err := db.Prepare(tool.DB_change("delete from acl where title = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(tool.DB_change("delete from data_set where doc_name = ? and set_name = 'acl_date'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		set_list := []string{
-			"document_markup",
-			"document_top",
-			"document_editor_top",
-		}
-
-		for for_a := 0; for_a < len(set_list); for_a++ {
-			stmt, err = db.Prepare(tool.DB_change("delete from data_set where doc_name = ? and set_name = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			_, err = stmt.Exec(doc_name, set_list[for_a])
-			if err != nil {
-				log.Fatal(err)
-			}
-		}
-
-		return_data := make(map[string]interface{})
-		return_data["response"] = "ok"
-		return_data["language"] = map[string]string{
-			"reset": tool.Get_language(db, "reset", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	} else {
-		return_data := make(map[string]interface{})
-		return_data["response"] = "require auth"
-		return_data["language"] = map[string]string{
-			"authority_error": tool.Get_language(db, "authority_error", false),
-		}
-
-		json_data, _ := json.Marshal(return_data)
-		return string(json_data)
-	}
-}

+ 0 - 87
route_go/route/api_w_watch_list.go

@@ -1,87 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_w_watch_list(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	page, _ := strconv.Atoi(other_set["num"])
-	num := 0
-	if page*50 > 0 {
-		num = page*50 - 50
-	}
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	if tool.Get_user_auth(db, other_set["ip"]) == "" {
-		return "{}"
-	}
-
-	var stmt *sql.Stmt
-	var err error
-	if other_set["do_type"] == "star_doc" {
-		stmt, err = db.Prepare(tool.DB_change("select id from user_set where name = 'star_doc' and data = ? limit ?, 50"))
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select id from user_set where name = 'watchlist' and data = ? limit ?, 50"))
-	}
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(other_set["name"], num)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var data_list [][]string
-	ip_parser_temp := map[string][]string{}
-
-	for rows.Next() {
-		var user_name string
-
-		err := rows.Scan(&user_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		var ip_pre string
-		var ip_render string
-
-		if _, ok := ip_parser_temp[user_name]; ok {
-			ip_pre = ip_parser_temp[user_name][0]
-			ip_render = ip_parser_temp[user_name][1]
-		} else {
-			ip_pre = tool.IP_preprocess(db, user_name, other_set["ip"])[0]
-			ip_render = tool.IP_parser(db, user_name, other_set["ip"])
-
-			ip_parser_temp[user_name] = []string{ip_pre, ip_render}
-		}
-
-		data_list = append(data_list, []string{ip_pre, ip_render})
-	}
-
-	return_data := make(map[string]interface{})
-	return_data["language"] = map[string]string{
-		"watchlist": tool.Get_language(db, "watchlist", false),
-		"star_doc":  tool.Get_language(db, "star_doc", false),
-	}
-
-	if len(data_list) == 0 {
-		return_data["data"] = map[string]string{}
-	} else {
-		return_data["data"] = data_list
-	}
-
-	json_data, _ := json.Marshal(return_data)
-	return string(json_data)
-}

+ 0 - 77
route_go/route/api_w_xref.go

@@ -1,77 +0,0 @@
-package route
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_w_xref(call_arg []string) string {
-	other_set := map[string]string{}
-	json.Unmarshal([]byte(call_arg[0]), &other_set)
-
-	db := tool.DB_connect()
-	defer db.Close()
-
-	page, _ := strconv.Atoi(other_set["page"])
-	num := 0
-	if page*50 > 0 {
-		num = page*50 - 50
-	}
-
-	var link_case_insensitive string
-
-	err := db.QueryRow(tool.DB_change("select data from other where name = 'link_case_insensitive'")).Scan(&link_case_insensitive)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			link_case_insensitive = ""
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	if link_case_insensitive != "" {
-		link_case_insensitive = " collate nocase"
-	}
-
-	var stmt *sql.Stmt
-	if other_set["do_type"] == "1" {
-		stmt, err = db.Prepare(tool.DB_change("select distinct link, type from back where title" + link_case_insensitive + " = ? and not type = 'no' and not type = 'nothing' order by type asc, link asc limit ?, 50"))
-	} else {
-		stmt, err = db.Prepare(tool.DB_change("select distinct title, type from back where link" + link_case_insensitive + " = ? and not type = 'no' and not type = 'nothing' order by type asc, title asc limit ?, 50"))
-	}
-
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(other_set["name"], num)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	var name string
-	var type_data string
-
-	var data_list [][]string
-
-	for rows.Next() {
-		err := rows.Scan(&name, &type_data)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		data_list = append(data_list, []string{name, type_data})
-	}
-
-	if len(data_list) == 0 {
-		return "{}"
-	} else {
-		json_data, _ := json.Marshal(data_list)
-		return string(json_data)
-	}
-}

+ 0 - 33
route_go/route/main_func_easter_egg.go

@@ -1,33 +0,0 @@
-package route
-
-import (
-	"math/rand"
-)
-
-func Main_func_easter_egg() string {
-	select_list := []string{
-		"PWD0ZbR7AOY", // Shanghai Teahouse ~ Chinese Tea
-		"HoU29ljOmTE", // Flawless Clothing of Celestials
-		"PR2vUm-Ald8", // U.N. Owen Was Her
-		"opZoEmsu_Lo", // Night of Nights
-		"txZFFTusSvw", // Reach for the Moon ~ Immortal Smoke
-		"Ixq9xL2tvRU", // Phantom Ensemble
-		"-3IAx_r4Au0", // Entrusting This World to Idols ~ Idolatrize World
-		"wObZkycA6sc", // Last Remote
-		"hZxYLa97gDg", // Emotional Skyscraper ~ Cosmic Mind
-		"hwn2kw4eFJM", // Border of Life
-		"wX2t_8HOtiY", // Voyage 1969
-		"tLQjcf45fKE", // Necrofantasia
-		"7DvMRAMuMrU", // Where Is That Bustling Marketplace Now ~ Immemorial Marketeers
-		// Remix by NyxTheShield
-		"SXFP9HgWBYQ", // 세계는 귀엽게 만들어져 있다
-		"YDrgO0Oj3Fg", // 죽취비상
-		"wxWV_sUGPB0", // 디자이어 드라이브
-		"uw0h2O7UaZ8", // 100번째 블랙 마켓
-		"blE4lnfEWbU", // 일렉트릭 헤리티지
-		// Remix by KR. Palto47
-	}
-	select_str := select_list[rand.Intn(len(select_list)-1)]
-
-	return "<iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/" + select_str + "\" frameborder=\"0\" allowfullscreen></iframe>"
-}

+ 0 - 78
route_go/route/tool/db_connect.go

@@ -1,78 +0,0 @@
-package tool
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"strings"
-
-	_ "github.com/go-sql-driver/mysql"
-	_ "modernc.org/sqlite"
-)
-
-func Temp_DB_connect() *sql.DB {
-	db, err := sql.Open("sqlite", "./data/temp.db")
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	return db
-}
-
-func DB_connect() *sql.DB {
-	m_db := Temp_DB_connect()
-	defer m_db.Close()
-
-	var db_set_str string
-
-	err := m_db.QueryRow("select data from temp where name = 'db_set'").Scan(&db_set_str)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			db_set_str = "{}"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	db_set := map[string]string{}
-	json.Unmarshal([]byte(db_set_str), &db_set)
-
-	if db_set["type"] == "sqlite" {
-		db, err := sql.Open("sqlite", db_set["name"]+".db")
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		return db
-	} else {
-		db, err := sql.Open("mysql", db_set["mysql_user"]+":"+db_set["mysql_pw"]+"@tcp("+db_set["mysql_host"]+":"+db_set["mysql_port"]+")/"+db_set["name"])
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		return db
-	}
-}
-
-func DB_change(data string) string {
-	m_db := Temp_DB_connect()
-	defer m_db.Close()
-
-	var db_set_type string
-
-	err := m_db.QueryRow("select data from temp where name = 'db_set_type'").Scan(&db_set_type)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			db_set_type = "sqlite"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	if db_set_type == "mysql" {
-		data = strings.Replace(data, "random()", "rand()", -1)
-		data = strings.Replace(data, "collate nocase", "collate utf8mb4_general_ci", -1)
-	}
-
-	return data
-}

+ 0 - 5
route_go/route/tool/document.go

@@ -1,5 +0,0 @@
-package tool
-
-func Add_history() {
-
-}

+ 0 - 1
route_go/route/tool/dokumark.go

@@ -1 +0,0 @@
-package tool

+ 0 - 481
route_go/route/tool/ip_parser.go

@@ -1,481 +0,0 @@
-package tool
-
-import (
-	"database/sql"
-	"log"
-	"regexp"
-	"strconv"
-	"strings"
-
-	"github.com/3th1nk/cidr"
-	"github.com/dlclark/regexp2"
-)
-
-func IP_or_user(ip string) bool {
-	match, _ := regexp.MatchString("(\\.|:)", ip)
-	if match {
-		return true
-	} else {
-		return false
-	}
-}
-
-func Get_level(db *sql.DB, ip string) []string {
-	var level string
-	var exp string
-	var max_exp string
-
-	stmt, err := db.Prepare(DB_change("select data from user_set where id = ? and name = 'level'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	err = stmt.QueryRow(ip).Scan(&level)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			level = "0"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	stmt, err = db.Prepare(DB_change("select data from user_set where id = ? and name = 'experience'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	err = stmt.QueryRow(ip).Scan(&exp)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			exp = "0"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	level_int, _ := strconv.Atoi(level)
-	max_exp = strconv.Itoa(level_int*50 + 500)
-
-	return []string{level, exp, max_exp}
-}
-
-func Get_user_auth(db *sql.DB, ip string) string {
-	if !IP_or_user(ip) {
-		var auth string
-
-		stmt, err := db.Prepare(DB_change("select data from user_set where id = ? and name = 'acl'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(ip).Scan(&auth)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				auth = "user"
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		if auth != "user" && auth != "ban" {
-			return auth
-		} else {
-			return ""
-		}
-	}
-
-	return ""
-}
-
-func Get_auth_group_info(db *sql.DB, auth string) map[string]bool {
-	stmt, err := db.Prepare(DB_change("select name from alist where name = ?"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	rows, err := stmt.Query(auth)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	data_list := map[string]bool{}
-
-	for rows.Next() {
-		var name string
-
-		err := rows.Scan(&name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		data_list[name] = true
-	}
-
-	return data_list
-}
-
-func IP_preprocess(db *sql.DB, ip string, my_ip string) []string {
-	var ip_view string
-	var user_name_view string
-
-	ip_split := strings.Split(ip, ":")
-	if len(ip_split) != 1 && ip_split[0] == "tool" {
-		return []string{ip, ""}
-	}
-
-	err := db.QueryRow(DB_change("select data from other where name = 'ip_view'")).Scan(&ip_view)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			ip_view = ""
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	err = db.QueryRow(DB_change("select data from other where name = 'user_name_view'")).Scan(&user_name_view)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			user_name_view = ""
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	if Get_user_auth(db, my_ip) != "" {
-		ip_view = ""
-		user_name_view = ""
-	}
-
-	ip_change := ""
-	if IP_or_user(ip) {
-		if ip_view != "" && ip != my_ip {
-			hash_ip := Sha224(ip)
-			ip = hash_ip[:10]
-			ip_change = "true"
-		}
-	} else {
-		if user_name_view != "" {
-			var sub_user_name string
-
-			stmt, err := db.Prepare(DB_change("select data from user_set where id = ? and name = 'sub_user_name'"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(ip).Scan(&sub_user_name)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					sub_user_name = Get_language(db, "member", false)
-				} else {
-					log.Fatal(err)
-				}
-			}
-
-			if sub_user_name == "" {
-				sub_user_name = Get_language(db, "member", false)
-			}
-
-			ip = sub_user_name
-			ip_change = "true"
-		} else {
-			var user_name string
-
-			stmt, err := db.Prepare(DB_change("select data from user_set where name = 'user_name' and id = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(ip).Scan(&user_name)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					user_name = ip
-				} else {
-					log.Fatal(err)
-				}
-			}
-
-			if user_name == "" {
-				user_name = ip
-			}
-
-			ip = user_name
-		}
-	}
-
-	return []string{ip, ip_change}
-}
-
-func IP_menu(db *sql.DB, ip string, my_ip string, option string) map[string][][]string {
-	menu := map[string][][]string{}
-
-	if ip == my_ip && option == "" {
-		stmt, err := db.Prepare(DB_change("select count(*) from user_notice where name = ? and readme = ''"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		var alarm_count string
-
-		err = stmt.QueryRow(my_ip).Scan(&alarm_count)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				alarm_count = "0"
-			} else {
-				log.Fatal(err)
-			}
-		}
-
-		if IP_or_user(my_ip) {
-			menu[Get_language(db, "login", false)] = [][]string{
-				{"/login", Get_language(db, "login", false)},
-				{"/register", Get_language(db, "register", false)},
-				{"/change", Get_language(db, "user_setting", false)},
-				{"/login/find", Get_language(db, "password_search", false)},
-				{"/alarm" + Url_parser(my_ip), Get_language(db, "alarm", false) + " (" + alarm_count + ")"},
-			}
-		} else {
-			menu[Get_language(db, "login", false)] = [][]string{
-				{"/logout", Get_language(db, "logout", false)},
-				{"/change", Get_language(db, "user_setting", false)},
-			}
-
-			menu[Get_language(db, "tool", false)] = [][]string{
-				{"/watch_list", Get_language(db, "watchlist", false)},
-				{"/star_doc", Get_language(db, "star_doc", false)},
-				{"/challenge", Get_language(db, "challenge_and_level_manage", false)},
-				{"/acl/user:" + Url_parser(my_ip), Get_language(db, "user_document_acl", false)},
-				{"/alarm" + Url_parser(my_ip), Get_language(db, "alarm", false) + " (" + alarm_count + ")"},
-			}
-		}
-	}
-
-	auth_name := Get_user_auth(db, my_ip)
-	if auth_name != "" {
-		menu[Get_language(db, "admin", false)] = [][]string{
-			{"/auth/give/ban/" + Url_parser(ip), Get_language(db, "ban", false)},
-			{"/list/user/check_submit/" + Url_parser(ip), Get_language(db, "check", false)},
-		}
-	}
-
-	menu[Get_language(db, "other", false)] = [][]string{
-		{"/record/" + Url_parser(ip), Get_language(db, "edit_record", false)},
-		{"/record/topic/" + Url_parser(ip), Get_language(db, "discussion_record", false)},
-		{"/record/bbs/" + Url_parser(ip), Get_language(db, "bbs_record", false)},
-		{"/record/bbs_comment/" + Url_parser(ip), Get_language(db, "bbs_comment_record", false)},
-		{"/topic/user:" + Url_parser(ip), Get_language(db, "user_discussion", false)},
-		{"/count/" + Url_parser(ip), Get_language(db, "count", false)},
-	}
-
-	return menu
-}
-
-func Get_user_ban_type(ban_type string) string {
-	if ban_type == "O" {
-		return "1"
-	} else if ban_type == "E" {
-		return "2"
-	} else {
-		return ""
-	}
-}
-
-func Get_user_ban(db *sql.DB, ip string, tool string) []string {
-	if Get_user_auth(db, ip) != "" {
-		return []string{"", ""}
-	}
-
-	rows, err := db.Query(DB_change("select login, block from rb where band = 'regex' and ongoing = '1'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer rows.Close()
-
-	for rows.Next() {
-		var login string
-		var block string
-
-		err := rows.Scan(&login, &block)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		ban_type := Get_user_ban_type(login)
-
-		r := regexp2.MustCompile(block, 0)
-		if m, _ := r.FindStringMatch(ip); m != nil {
-			if tool == "login" {
-				if ban_type != "1" {
-					return []string{"true", "a" + ban_type}
-				}
-			} else if tool == "edit_request" {
-				if ban_type != "2" {
-					return []string{"true", "a" + ban_type}
-				}
-			} else {
-				return []string{"true", "a" + ban_type}
-			}
-		}
-	}
-
-	if IP_or_user(ip) {
-		rows, err = db.Query(DB_change("select login, block from rb where band = 'cidr' and ongoing = '1'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer rows.Close()
-
-		for rows.Next() {
-			var login string
-			var block string
-
-			err := rows.Scan(&login, &block)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			ban_type := Get_user_ban_type(login)
-
-			c, _ := cidr.Parse(block)
-			if c.Contains(ip) {
-				if tool == "login" {
-					if ban_type != "1" {
-						return []string{"true", "b" + ban_type}
-					}
-				} else if tool == "edit_request" {
-					if ban_type != "2" {
-						return []string{"true", "b" + ban_type}
-					}
-				} else {
-					return []string{"true", "b" + ban_type}
-				}
-			}
-		}
-	}
-
-	stmt, err := db.Prepare(DB_change("select login from rb where block = ? and band = '' and ongoing = '1'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	var login string
-
-	err = stmt.QueryRow(ip).Scan(&login)
-	if err != nil {
-		if err == sql.ErrNoRows {
-
-		} else {
-			log.Fatal(err)
-		}
-	} else {
-		ban_type := Get_user_ban_type(login)
-
-		if tool == "login" {
-			if ban_type != "1" {
-				return []string{"true", ban_type}
-			}
-		} else if tool == "edit_request" {
-			if ban_type != "2" {
-				return []string{"true", ban_type}
-			}
-		} else {
-			return []string{"true", ban_type}
-		}
-	}
-
-	stmt, err = db.Prepare(DB_change("select data from user_set where id = ? and name = 'acl'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	var data string
-
-	err = stmt.QueryRow(ip).Scan(&data)
-	if err != nil {
-		if err == sql.ErrNoRows {
-
-		} else {
-			log.Fatal(err)
-		}
-	} else {
-		if data == "ban" {
-			return []string{"true", "c"}
-		}
-	}
-
-	return []string{"", ""}
-}
-
-func IP_parser(db *sql.DB, ip string, my_ip string) string {
-	ip_pre_data := IP_preprocess(db, ip, my_ip)
-	if ip_pre_data[0] == "" {
-		return ""
-	}
-
-	if ip_pre_data[1] != "" {
-		return ip_pre_data[0]
-	} else {
-		raw_ip := ip
-		ip = HTML_escape(ip_pre_data[0])
-
-		if !IP_or_user(raw_ip) {
-			var user_name_level string
-			var user_title string
-
-			err := db.QueryRow(DB_change("select data from other where name = 'user_name_level'")).Scan(&user_name_level)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					user_name_level = ""
-				} else {
-					log.Fatal(err)
-				}
-			}
-
-			if user_name_level != "" {
-				level_data := Get_level(db, raw_ip)
-				ip += "<sup>" + level_data[0] + "</sup>"
-			}
-
-			ip = "<a href=\"/w/" + Url_parser("user:"+raw_ip) + "\">" + ip + "</a>"
-
-			stmt, err := db.Prepare(DB_change("select data from user_set where name = 'user_title' and id = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(raw_ip).Scan(&user_title)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					user_title = ""
-				} else {
-					log.Fatal(err)
-				}
-			}
-
-			if Get_user_auth(db, raw_ip) != "" {
-				ip = "<b>" + ip + "</b>"
-			}
-
-			ip = user_title + ip
-		}
-
-		ban := Get_user_ban(db, raw_ip, "")
-		if ban[0] == "true" {
-			ip = "<sup>" + ban[1] + "</sup><s>" + ip + "</s>"
-		}
-
-		ip += "<a href=\"javascript:void(0);\" name=\"" + Url_parser(raw_ip) + "\" onclick=\"opennamu_do_ip_click(this);\"><span class=\"opennamu_svg opennamu_svg_tool\">&nbsp;</span></a>"
-
-		return ip
-	}
-}

+ 0 - 44
route_go/route/tool/language.go

@@ -1,44 +0,0 @@
-package tool
-
-import (
-	"database/sql"
-	"encoding/json"
-	"log"
-	"os"
-)
-
-func Get_language(db *sql.DB, data string, safe bool) string {
-	var language string
-
-	err := db.QueryRow(DB_change("select data from other where name = 'language'")).Scan(&language)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			language = "ko-KR"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	file, err := os.Open("./lang/" + language + ".json")
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer file.Close()
-
-	lang_data := map[string]string{}
-
-	decoder := json.NewDecoder(file)
-	if err := decoder.Decode(&lang_data); err != nil {
-		return ""
-	}
-
-	if _, ok := lang_data[data]; ok {
-		if safe {
-			return lang_data[data]
-		} else {
-			return HTML_escape(lang_data[data])
-		}
-	} else {
-		return data + " (" + language + ")"
-	}
-}

+ 0 - 163
route_go/route/tool/markdown.go

@@ -1,163 +0,0 @@
-package tool
-
-import (
-	"bytes"
-	"database/sql"
-	"log"
-	"net/url"
-	"regexp"
-	"strconv"
-	"strings"
-
-	"github.com/yuin/goldmark"
-	"github.com/yuin/goldmark/extension"
-	"github.com/yuin/goldmark/renderer/html"
-)
-
-func Markdown(db *sql.DB, data map[string]string) map[string]interface{} {
-	backlink := map[string]map[string]string{}
-	link_count := 0
-
-	raw_input := data["data"]
-
-	r := regexp.MustCompile(`\[\]\(([^\(\)]+)\)`)
-	raw_input = r.ReplaceAllStringFunc(raw_input, func(m string) string {
-		match := r.FindStringSubmatch(m)
-
-		return "[" + match[1] + "](" + match[1] + ")"
-	})
-
-	r = regexp.MustCompile(`\[([^\[\]]+)\]\(\)`)
-	raw_input = r.ReplaceAllStringFunc(raw_input, func(m string) string {
-		match := r.FindStringSubmatch(m)
-
-		return "[" + match[1] + "](" + match[1] + ")"
-	})
-
-	input := []byte(raw_input)
-	markdown := goldmark.New(
-		goldmark.WithExtensions(
-			extension.Strikethrough,
-			extension.Table,
-		),
-		goldmark.WithRendererOptions(
-			html.WithHardWraps(),
-		),
-	)
-
-	var buf bytes.Buffer
-	if err := markdown.Convert(input, &buf); err != nil {
-		panic(err)
-	}
-
-	string_data := buf.String()
-
-	code_stack := []int{}
-	code_stack_idx := 0
-	code_stack_end := map[string]string{}
-
-	r = regexp.MustCompile(`(<code>|<\/code>)`)
-	for idx := r.FindStringIndex(string_data); len(idx) != 0; idx = r.FindStringIndex(string_data) {
-		if string_data[idx[0]:idx[1]] == "<code>" {
-			code_stack = []int{idx[0], idx[1]}
-			string_data = strings.Replace(string_data, "<code>", "<0001>", 1)
-		} else {
-			string_data = strings.Replace(string_data, "<0001>", "<code>", -1)
-
-			code_stack_idx_str := strconv.Itoa(code_stack_idx)
-			code_stack_end["code_"+code_stack_idx_str] = string_data[code_stack[0]:idx[1]]
-			code_stack_idx++
-
-			string_data = string_data[:code_stack[0]] + "<code_" + code_stack_idx_str + ">" + string_data[idx[1]:]
-		}
-	}
-
-	// p := bluemonday.UGCPolicy()
-	// string_data := p.Sanitize(string_data)
-
-	r = regexp.MustCompile(`\[([^\[\]]+)\]\(([^\(\)]*)\)`)
-	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
-		match := r.FindStringSubmatch(m)
-
-		link := match[2]
-		if link == "" {
-			link = match[1]
-		}
-
-		return "<a href=\"" + link + "\">" + match[1] + "</a>"
-	})
-
-	r = regexp.MustCompile(`<code_[0-9]+>`)
-	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
-		m = strings.Replace(m, "<", "", 1)
-		m = strings.Replace(m, ">", "", 1)
-
-		return code_stack_end[m]
-	})
-
-	r = regexp.MustCompile(`<a href="([^"]+)"`)
-	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
-		match := r.FindStringSubmatch(m)
-
-		m1, _ := regexp.MatchString(`^https?:\/\/`, match[1])
-		if m1 {
-			return "<a href=\"" + match[1] + "\" class=\"opennamu_link_out\" target=\"_blank\""
-		} else {
-			link := ""
-			link, _ = url.QueryUnescape(match[1])
-
-			if _, ok := backlink[link]; !ok {
-				backlink[link] = map[string]string{}
-			}
-
-			var exist string
-
-			stmt, err := db.Prepare(DB_change("select title from data where title = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(link).Scan(&exist)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					exist = ""
-				} else {
-					log.Fatal(err)
-				}
-			}
-
-			backlink[link][""] = ""
-			link_count += 1
-
-			class := ""
-			if exist == "" {
-				class = "opennamu_not_exist_link"
-			}
-
-			return "<a href=\"/w/" + match[1] + "\" class=\"" + class + "\""
-		}
-	})
-
-	string_data = strings.Replace(string_data, "<ul>", "<ul class=\"opennamu_ul\">", -1)
-
-	end_backlink := [][]string{}
-	for k1, v1 := range backlink {
-		for k2, v2 := range v1 {
-			end_backlink = append(end_backlink, []string{
-				data["doc_name"],
-				k1,
-				k2,
-				v2,
-			})
-		}
-	}
-
-	end_data := make(map[string]interface{})
-	end_data["data"] = string_data
-	end_data["js_data"] = "opennamu_do_toc();"
-	end_data["backlink"] = end_backlink
-	end_data["link_count"] = link_count
-
-	return end_data
-}

+ 0 - 25
route_go/route/tool/monimark.go

@@ -1,25 +0,0 @@
-package tool
-
-import (
-	"strings"
-
-	"github.com/dlclark/regexp2"
-)
-
-// 모니마크 렌더러는 전체가 아니라 나무마크로 변환
-func Monimark(data string) string {
-	//
-	r := regexp2.MustCompile(`<<((?:(?!<<|>>)))>>`, 0)
-	for {
-		if m, _ := r.FindStringMatch(data); m != nil {
-			gps := m.Groups()
-			m_string := m.String()
-
-			data = strings.Replace(data, m_string, "[include("+gps[1].Captures[0].String()+")]", 1)
-		} else {
-			break
-		}
-	}
-
-	return data
-}

+ 0 - 227
route_go/route/tool/namumark.go

@@ -1,227 +0,0 @@
-package tool
-
-import (
-	"database/sql"
-	"html"
-	"log"
-	"regexp"
-	"strconv"
-	"strings"
-
-	"github.com/dlclark/regexp2"
-)
-
-type namumark struct {
-	db   *sql.DB
-	data map[string]string
-
-	render_data    string
-	render_data_js string
-
-	temp_data       map[string]string
-	temp_data_raw   map[string]string
-	temp_data_count int
-
-	backlink   [][]string
-	link_count int
-}
-
-func Namumark_new(db *sql.DB, data map[string]string) *namumark {
-	data_string := data["data"]
-	data_string = html.EscapeString(data_string)
-	data_string = strings.Replace(data_string, "\r", "", -1)
-	data_string = "\n" + data_string + "\n"
-
-	return &namumark{
-		db,
-		data,
-
-		data_string,
-		"",
-
-		map[string]string{},
-		map[string]string{},
-		0,
-
-		[][]string{},
-		0,
-	}
-}
-
-func (class *namumark) func_temp_save(data string, data_raw string) string {
-	name := "<temp_save_" + strconv.Itoa(class.temp_data_count) + ">"
-
-	class.temp_data[name] = data
-	class.temp_data_raw[name] = data_raw
-	class.temp_data_count += 1
-
-	return name
-}
-
-func (class namumark) func_temp_restore(data string, to_raw bool) string {
-	string_data := data
-
-	if to_raw {
-		for k, v := range class.temp_data_raw {
-			string_data = strings.Replace(string_data, k, v, 1)
-		}
-	} else {
-		for k, v := range class.temp_data {
-			string_data = strings.Replace(string_data, k, v, 1)
-		}
-	}
-
-	return string_data
-}
-
-func (class *namumark) render_text() {
-	string_data := class.render_data
-
-	r := regexp2.MustCompile(`&#39;&#39;&#39;((?:(?!&#39;&#39;&#39;).)+)&#39;&#39;&#39;`, 0)
-	for {
-		if m, _ := r.FindStringMatch(string_data); m != nil {
-			gps := m.Groups()
-			m_string := m.String()
-
-			temp_name := class.func_temp_save("<b>"+gps[1].Captures[0].String()+"</b>", m_string)
-			string_data = strings.Replace(string_data, m_string, temp_name, 1)
-		} else {
-			break
-		}
-	}
-
-	r = regexp2.MustCompile(`&#39;&#39;((?:(?!&#39;&#39;).)+)&#39;&#39;`, 0)
-	for {
-		if m, _ := r.FindStringMatch(string_data); m != nil {
-			gps := m.Groups()
-			m_string := m.String()
-
-			temp_name := class.func_temp_save("<i>"+gps[1].Captures[0].String()+"</i>", m_string)
-			string_data = strings.Replace(string_data, m_string, temp_name, 1)
-		} else {
-			break
-		}
-	}
-
-	r = regexp2.MustCompile(`__((?:(?!__).)+)__`, 0)
-	for {
-		if m, _ := r.FindStringMatch(string_data); m != nil {
-			gps := m.Groups()
-			m_string := m.String()
-
-			temp_name := class.func_temp_save("<u>"+gps[1].Captures[0].String()+"</u>", m_string)
-			string_data = strings.Replace(string_data, m_string, temp_name, 1)
-		} else {
-			break
-		}
-	}
-
-	r_list := []string{`\^\^\^((?:(?!\^\^\^).)+)\^\^\^`, `\^\^((?:(?!\^\^).)+)\^\^`}
-	for for_a := 0; for_a < len(r_list); for_a++ {
-		r = regexp2.MustCompile(r_list[for_a], 0)
-		for {
-			if m, _ := r.FindStringMatch(string_data); m != nil {
-				gps := m.Groups()
-				m_string := m.String()
-
-				temp_name := class.func_temp_save("<sup>"+gps[1].Captures[0].String()+"</sup>", m_string)
-				string_data = strings.Replace(string_data, m_string, temp_name, 1)
-			} else {
-				break
-			}
-		}
-	}
-
-	r_list = []string{`,,,((?:(?!,,,).)+),,,`, `,,((?:(?!,,).)+),,`}
-	for for_a := 0; for_a < len(r_list); for_a++ {
-		r = regexp2.MustCompile(r_list[for_a], 0)
-		for {
-			if m, _ := r.FindStringMatch(string_data); m != nil {
-				gps := m.Groups()
-				m_string := m.String()
-
-				temp_name := class.func_temp_save("<sub>"+gps[1].Captures[0].String()+"</sub>", m_string)
-				string_data = strings.Replace(string_data, m_string, temp_name, 1)
-			} else {
-				break
-			}
-		}
-	}
-
-	r_list = []string{`--((?:(?!--).)+)--`, `~~((?:(?!~~).)+)~~`}
-	for for_a := 0; for_a < len(r_list); for_a++ {
-		r = regexp2.MustCompile(r_list[for_a], 0)
-		for {
-			if m, _ := r.FindStringMatch(string_data); m != nil {
-				gps := m.Groups()
-				m_string := m.String()
-
-				temp_name := class.func_temp_save("<s>"+gps[1].Captures[0].String()+"</s>", m_string)
-				string_data = strings.Replace(string_data, m_string, temp_name, 1)
-			} else {
-				break
-			}
-		}
-	}
-
-	class.render_data = string_data
-}
-
-func (class *namumark) render_last() {
-	string_data := class.render_data
-
-	string_data = class.func_temp_restore(string_data, false)
-
-	r := regexp.MustCompile(`(\n| )+$`)
-	string_data = r.ReplaceAllString(string_data, "")
-
-	r = regexp.MustCompile(`^(\n| )+`)
-	string_data = r.ReplaceAllString(string_data, "")
-
-	r = regexp.MustCompile(`\n?<front_br>`)
-	string_data = r.ReplaceAllString(string_data, "")
-
-	r = regexp.MustCompile(`<back_br>\n?`)
-	string_data = r.ReplaceAllString(string_data, "")
-
-	string_data = strings.Replace(string_data, "\n", "<br>", -1)
-
-	class.render_data = string_data
-	class.render_data_js += "opennamu_do_toc();"
-}
-
-func (class *namumark) render_heading() {
-	string_data := class.render_data
-
-	r := regexp.MustCompile(`\n(?:(={1,6})(#?) ?([^\n]+))\n`)
-	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
-		match := r.FindStringSubmatch(m)
-
-		r = regexp.MustCompile(` ?(#?={1,6}[^=]*)$`)
-		heading_data := r.ReplaceAllString(match[3], "")
-
-		heading_len := strconv.Itoa(len(match[1]))
-		heading_render := "<h" + heading_len + ">" + heading_data + "</h" + heading_len + ">"
-
-		temp_name := class.func_temp_save(heading_render, match[0])
-		return temp_name
-	})
-
-	class.render_data = string_data
-}
-
-func (class namumark) main() map[string]interface{} {
-	class.render_text()
-	class.render_heading()
-	class.render_last()
-
-	log.Default().Println(class.render_data)
-
-	end_data := make(map[string]interface{})
-	end_data["data"] = class.render_data
-	end_data["js_data"] = class.render_data_js
-	end_data["backlink"] = class.backlink
-	end_data["link_count"] = class.link_count
-
-	return end_data
-}

+ 0 - 176
route_go/route/tool/render.go

@@ -1,176 +0,0 @@
-package tool
-
-import (
-	"database/sql"
-	"log"
-	"strconv"
-	"time"
-)
-
-func Get_render(db *sql.DB, doc_name string, data string, render_type string) map[string]string {
-	var markup string
-
-	if render_type == "api_view" || render_type == "api_from" || render_type == "api_include" || render_type == "backlink" {
-		stmt, err := db.Prepare(DB_change("select set_data from data_set where doc_name = ? and set_name = 'document_markup'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		err = stmt.QueryRow(doc_name).Scan(&markup)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				markup = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-	}
-
-	if markup == "" {
-		err := db.QueryRow(DB_change("select data from other where name = 'markup'")).Scan(&markup)
-		if err != nil {
-			if err == sql.ErrNoRows {
-				markup = ""
-			} else {
-				log.Fatal(err)
-			}
-		}
-	}
-
-	if markup == "" || markup == "namumark_beta" {
-		markup = "namumark"
-	}
-
-	now_time := time.Now().UnixNano()
-	render_name := strconv.Itoa(int(now_time))
-
-	render_data := Get_render_direct(db, doc_name, data, markup, render_name, render_type)
-
-	return render_data
-}
-
-func Get_render_direct(db *sql.DB, doc_name string, data string, markup string, render_name string, render_type string) map[string]string {
-	from := ""
-	include := ""
-	backlink := ""
-	if render_type == "api_include" {
-		include = "1"
-	} else if render_type == "api_from" {
-		from = "1"
-	} else if render_type == "backlink" {
-		backlink = "1"
-	}
-
-	if render_type == "api_view" || render_type == "api_from" || render_type == "api_include" || render_type == "backlink" {
-		render_type = "view"
-	}
-
-	doc_data_set := map[string]string{
-		"doc_name":    doc_name,
-		"data":        data,
-		"render_name": render_name,
-		"render_type": render_type,
-		"from":        from,
-		"include":     include,
-	}
-
-	render_data := make(map[string]interface{})
-	if markup == "namumark" {
-		render_data_class := Namumark_new(db, doc_data_set)
-		render_data = render_data_class.main()
-	} else if markup == "markdown" {
-		render_data = Markdown(db, doc_data_set)
-	} else {
-		render_data["data"] = data
-		render_data["js_data"] = ""
-		render_data["backlink"] = [][]string{}
-	}
-
-	if backlink == "1" {
-		stmt, err := db.Prepare(DB_change("delete from back where link = ?"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(DB_change("delete from back where title = ? and type = 'no'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(DB_change("delete from data_set where doc_name = ? and set_name = 'link_count'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(DB_change("delete from data_set where doc_name = ? and set_name = 'doc_type'"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name)
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		end_backlink := render_data["backlink"].([][]string)
-		for for_a := 0; for_a < len(end_backlink); for_a++ {
-			stmt, err := db.Prepare(DB_change("insert into back (link, title, type, data) values (?, ?, ?, ?)"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			_, err = stmt.Exec(end_backlink[0], end_backlink[1], end_backlink[2])
-			if err != nil {
-				log.Fatal(err)
-			}
-		}
-
-		stmt, err = db.Prepare(DB_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'link_count', ?)"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name, render_data["link_count"].(int))
-		if err != nil {
-			log.Fatal(err)
-		}
-
-		stmt, err = db.Prepare(DB_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'doc_type', ?)"))
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer stmt.Close()
-
-		_, err = stmt.Exec(doc_name, "")
-		if err != nil {
-			log.Fatal(err)
-		}
-	}
-
-	return map[string]string{
-		"data":    "<div id=\"opennamu_render_complete\">" + render_data["data"].(string) + "</div>",
-		"js_data": render_data["js_data"].(string),
-	}
-}

+ 0 - 25
route_go/route/tool/some_tool.go

@@ -1,25 +0,0 @@
-package tool
-
-import (
-	"crypto/sha256"
-	"encoding/hex"
-	"html/template"
-	"net/url"
-)
-
-func Sha224(data string) string {
-	hasher := sha256.New224()
-	hasher.Write([]byte(data))
-	hash_byte := hasher.Sum(nil)
-	hash_str := hex.EncodeToString(hash_byte)
-
-	return hash_str
-}
-
-func Url_parser(data string) string {
-	return url.QueryEscape(data)
-}
-
-func HTML_escape(data string) string {
-	return template.HTMLEscapeString(data)
-}

+ 0 - 46
route_go/windows_amd64.ps1

@@ -1,46 +0,0 @@
-$file_name = Read-Host "file_name "
-
-$to = $args[0]
-if($to -eq $null) {
-    $to = "all"
-}
-
-if($to -eq "linux_amd64" -or $to -eq "all") {
-    Write-Host "linux amd64"
-    $env:GOOS = "linux"
-    $env:GOARCH = "amd64"
-    $env:CGO_ENABLED = 0
-    go build $file_name.go
-    Remove-Item ".\bin\$file_name.amd64.bin"
-    Move-Item "opennamu" ".\bin\$file_name.amd64.bin"
-}
-
-if($to -eq "linux_arm64" -or $to -eq "all") {
-    Write-Host "linux arm64"
-    $env:GOOS = "linux"
-    $env:GOARCH = "arm64"
-    $env:CGO_ENABLED = 0
-    go build $file_name.go
-    Remove-Item ".\bin\$file_name.arm64.bin"
-    Move-Item "opennamu" ".\bin\$file_name.arm64.bin"
-}
-
-if($to -eq "windows_amd64" -or $to -eq "all") {
-    Write-Host "windows amd64"
-    $env:GOOS = "windows"
-    $env:GOARCH = "amd64"
-    $env:CGO_ENABLED = 0
-    go build $file_name.go
-    Remove-Item ".\bin\$file_name.amd64.exe"
-    Move-Item "opennamu.exe" ".\bin\$file_name.amd64.exe"
-}
-
-if($to -eq "windows_arm64" -or $to -eq "all") {
-    Write-Host "windows arm64"
-    $env:GOOS = "windows"
-    $env:GOARCH = "arm64"
-    $env:CGO_ENABLED = 0
-    go build $file_name.go
-    Remove-Item ".\bin\$file_name.arm64.exe"
-    Move-Item "opennamu.exe" ".\bin\$file_name.arm64.exe"
-}