├── .gitignore
├── LICENSE
├── README.md
├── nicoNewStreamRecorderKakkoKari
├── (+.ico
├── (+3.ico
├── (check.ico
├── (rec.ico
├── (rec3.ico
├── .editorconfig
├── .nuget
│ └── packages.config
├── namaichi.sln
├── namaichi.v12.suo
├── namaichi
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ ├── Settings.cs
│ │ └── Settings.settings
│ ├── app.config
│ ├── app.resx
│ ├── curl_wrap.dll
│ ├── kari.snk
│ ├── libcrypto-81_3.dll
│ ├── libcurl.dll
│ ├── libgcc_s_dw2-1.dll
│ ├── libssl-81_3.dll
│ ├── libwinpthread-1.dll
│ ├── namaichi.csproj
│ ├── nghttp2.dll
│ ├── nghttp3.dll
│ ├── ngtcp2.dll
│ ├── ngtcp2_crypto_openssl.dll
│ ├── packages.config
│ └── src
│ │ ├── Logger
│ │ └── TraceListener.cs
│ │ ├── config
│ │ └── config.cs
│ │ ├── gui
│ │ ├── AikotobaInputForm.Designer.cs
│ │ ├── AikotobaInputForm.cs
│ │ ├── AikotobaInputForm.resx
│ │ ├── DotNetMessageBox.Designer.cs
│ │ ├── DotNetMessageBox.cs
│ │ ├── DotNetMessageBox.resx
│ │ ├── MainForm.Designer.cs
│ │ ├── MainForm.cs
│ │ ├── MainForm.resx
│ │ ├── MfaInputForm.Designer.cs
│ │ ├── MfaInputForm.cs
│ │ ├── MfaInputForm.resx
│ │ ├── NicoSessionComboBox2.cs
│ │ ├── RecordLogForm.Designer.cs
│ │ ├── RecordLogForm.cs
│ │ ├── RecordLogForm.resx
│ │ ├── TimeShiftOptionForm.Designer.cs
│ │ ├── TimeShiftOptionForm.cs
│ │ ├── TimeShiftOptionForm.resx
│ │ ├── UpdateForm.Designer.cs
│ │ ├── UpdateForm.cs
│ │ ├── UpdateForm.resx
│ │ ├── VersionForm.Designer.cs
│ │ ├── VersionForm.cs
│ │ ├── VersionForm.resx
│ │ ├── argOptionForm.Designer.cs
│ │ ├── argOptionForm.cs
│ │ ├── argOptionForm.resx
│ │ ├── commentForm.Designer.cs
│ │ ├── commentForm.cs
│ │ ├── commentForm.resx
│ │ ├── defaultFFplayController.Designer.cs
│ │ ├── defaultFFplayController.cs
│ │ ├── defaultFFplayController.resx
│ │ ├── fileNameOptionForm.Designer.cs
│ │ ├── fileNameOptionForm.cs
│ │ ├── fileNameOptionForm.resx
│ │ ├── optionForm.Designer.cs
│ │ ├── optionForm.cs
│ │ ├── optionForm.resx
│ │ ├── placeHolderText.Designer.cs
│ │ ├── placeHolderText.cs
│ │ ├── placeTextBox5.Designer.cs
│ │ └── placeTextBox5.cs
│ │ ├── info
│ │ ├── AccountInfo.cs
│ │ ├── ChatInfo.cs
│ │ ├── M3u8Info.cs
│ │ ├── RecordLogInfo.cs
│ │ ├── RedistInfo.cs
│ │ ├── StreamInfo.cs
│ │ ├── TimeShiftConfig.cs
│ │ ├── WatchingInfo.cs
│ │ └── numTaskInfo.cs
│ │ ├── play
│ │ ├── CommentPlayerWebSocket.cs
│ │ └── Player.cs
│ │ ├── rec
│ │ ├── AnotherEngineRecorder.cs
│ │ ├── ArgConcat.cs
│ │ ├── ChannelPlusRecorder.cs
│ │ ├── ChaseHokan.cs
│ │ ├── ChaseLastRecord.cs
│ │ ├── CookieGetter.cs
│ │ ├── DeflateDecoder.cs
│ │ ├── DliveManager.cs
│ │ ├── DropSegmentProcess.cs
│ │ ├── FFMpegConcat.cs
│ │ ├── FFMpegRecord.cs
│ │ ├── FollowCommunity.cs
│ │ ├── Html5Recorder.cs
│ │ ├── IRecorderProcess.cs
│ │ ├── ITimeShiftCommentGetter.cs
│ │ ├── JikkenRecordProcess.cs
│ │ ├── JikkenRecorder.cs
│ │ ├── MpnCommentGetter.cs
│ │ ├── NotHtml5Recorder.cs
│ │ ├── OutputTimeShiftTsUrlList.cs
│ │ ├── Record.cs
│ │ ├── RecordFromUrl.cs
│ │ ├── RecordStateSetter.cs
│ │ ├── RecordingManager.cs
│ │ ├── Reservation.cs
│ │ ├── RtmpClient.cs
│ │ ├── RtmpRecorder.cs
│ │ ├── SeleniumRecorder.cs
│ │ ├── ThroughFFMpeg.cs
│ │ ├── TimeShiftCommentGetter.cs
│ │ ├── TimeShiftCommentGetter_chPlus.cs
│ │ ├── TimeShiftCommentGetter_jikken.cs
│ │ ├── TimeShiftCommentGetter_xml.cs
│ │ ├── WebSocketCurl.cs
│ │ ├── WebSocketRecorder.cs
│ │ └── XmlCommentGetter_ontime.cs
│ │ └── util
│ │ ├── ArgReader.cs
│ │ ├── Curl.cs
│ │ ├── ProtoBufCodes.cs
│ │ ├── RedirectLogin.cs
│ │ ├── RegGetter.cs
│ │ ├── SourceInfoSerialize.cs
│ │ ├── util.cs
│ │ └── varint.cs
├── packages
│ ├── Microsoft.Web.Xdt.2.1.1
│ │ ├── Microsoft.Web.Xdt.2.1.1.nupkg
│ │ └── lib
│ │ │ └── net40
│ │ │ └── Microsoft.Web.XmlTransform.dll
│ ├── Newtonsoft.Json.9.0.1
│ │ ├── Newtonsoft.Json.9.0.1.nupkg
│ │ ├── lib
│ │ │ ├── net20
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ ├── net35
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ ├── net40
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ ├── net45
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ ├── netstandard1.0
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ ├── portable-net40+sl5+wp80+win8+wpa81
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ │ └── portable-net45+wp80+win8+wpa81
│ │ │ │ ├── Newtonsoft.Json.dll
│ │ │ │ └── Newtonsoft.Json.xml
│ │ └── tools
│ │ │ └── install.ps1
│ ├── NuGet.Build.2.12.0
│ │ ├── NuGet.Build.2.12.0.nupkg
│ │ └── tools
│ │ │ └── NuGet.targets
│ ├── NuGet.Client.4.2.0
│ │ ├── NuGet.Client.4.2.0.nupkg
│ │ └── lib
│ │ │ ├── net45
│ │ │ ├── NuGet.Client.dll
│ │ │ └── NuGet.Client.xml
│ │ │ └── netstandard1.3
│ │ │ ├── NuGet.Client.dll
│ │ │ └── NuGet.Client.xml
│ ├── NuGet.CommandLine.1.0.11220.26
│ │ ├── NuGet.CommandLine.1.0.11220.26.nupkg
│ │ └── Tools
│ │ │ └── NuGet.exe
│ ├── NuGet.Common.4.6.2
│ │ ├── NuGet.Common.4.6.2.nupkg
│ │ └── lib
│ │ │ ├── net46
│ │ │ ├── NuGet.Common.dll
│ │ │ └── NuGet.Common.xml
│ │ │ └── netstandard1.3
│ │ │ ├── NuGet.Common.dll
│ │ │ └── NuGet.Common.xml
│ ├── NuGet.Frameworks.4.6.2
│ │ ├── NuGet.Frameworks.4.6.2.nupkg
│ │ └── lib
│ │ │ ├── net40
│ │ │ ├── NuGet.Frameworks.dll
│ │ │ └── NuGet.Frameworks.xml
│ │ │ ├── net46
│ │ │ ├── NuGet.Frameworks.dll
│ │ │ └── NuGet.Frameworks.xml
│ │ │ └── netstandard1.3
│ │ │ ├── NuGet.Frameworks.dll
│ │ │ └── NuGet.Frameworks.xml
│ ├── SnkLib.App.CookieGetter.2.4.0.0
│ │ ├── build
│ │ │ ├── net40
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ ├── SnkLib.App.CookieGetter.targets
│ │ │ │ └── x86
│ │ │ │ │ └── SnkLib.App.CookieGetter.x86Proxy.exe
│ │ │ └── net45
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ ├── SnkLib.App.CookieGetter.targets
│ │ │ │ └── x86
│ │ │ │ └── SnkLib.App.CookieGetter.x86Proxy.exe
│ │ └── lib
│ │ │ ├── net40
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ │ │ └── net45
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ ├── SnkLib.App.CookieGetter.2.4.2.0
│ │ ├── build
│ │ │ ├── net40
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ └── SnkLib.App.CookieGetter.targets
│ │ │ └── net45
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ └── SnkLib.App.CookieGetter.targets
│ │ └── lib
│ │ │ ├── net40
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ │ │ └── net45
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ ├── SnkLib.App.CookieGetter.2.4.4.0
│ │ ├── build
│ │ │ ├── net40
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ └── SnkLib.App.CookieGetter.targets
│ │ │ └── net45
│ │ │ │ ├── Deploy.targets
│ │ │ │ ├── SnkLib.App.CookieGetter.LibChecker.exe
│ │ │ │ └── SnkLib.App.CookieGetter.targets
│ │ └── lib
│ │ │ ├── net40
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ │ │ └── net45
│ │ │ ├── SnkLib.App.CookieGetter.dll
│ │ │ └── SnkLib.App.CookieGetter.xml
│ ├── SnkLib.App.CookieGetter.Forms.1.4.1.0
│ │ └── lib
│ │ │ ├── net40
│ │ │ ├── SnkLib.App.CookieGetter.Forms.dll
│ │ │ └── SnkLib.App.CookieGetter.Forms.xml
│ │ │ └── net45
│ │ │ ├── SnkLib.App.CookieGetter.Forms.dll
│ │ │ └── SnkLib.App.CookieGetter.Forms.xml
│ ├── SnkLib.App.CookieGetter.Forms.1.4.3.0
│ │ ├── lib
│ │ │ ├── net40
│ │ │ │ ├── SnkLib.App.CookieGetter.Forms.dll
│ │ │ │ └── SnkLib.App.CookieGetter.Forms.xml
│ │ │ └── net45
│ │ │ │ ├── SnkLib.App.CookieGetter.Forms.dll
│ │ │ │ └── SnkLib.App.CookieGetter.Forms.xml
│ │ └── package
│ │ │ └── services
│ │ │ └── metadata
│ │ │ └── core-properties
│ │ │ └── fb92d0547bd643ebb6d64cf495002a98.psmdcp
│ ├── SuperSocket.ClientEngine.Core.0.10.0
│ │ ├── SuperSocket.ClientEngine.Core.0.10.0.nupkg
│ │ └── lib
│ │ │ ├── net20
│ │ │ └── SuperSocket.ClientEngine.dll
│ │ │ ├── net35-client
│ │ │ └── SuperSocket.ClientEngine.dll
│ │ │ ├── net40-client
│ │ │ └── SuperSocket.ClientEngine.dll
│ │ │ ├── net45
│ │ │ └── SuperSocket.ClientEngine.dll
│ │ │ ├── netstandard1.3
│ │ │ └── SuperSocket.ClientEngine.dll
│ │ │ └── sl50
│ │ │ └── SuperSocket.ClientEngine.dll
│ ├── System.Data.SQLite.Core.1.0.108.0
│ │ ├── System.Data.SQLite.Core.1.0.108.0.nupkg
│ │ ├── build
│ │ │ ├── net20
│ │ │ │ ├── System.Data.SQLite.Core.targets
│ │ │ │ ├── x64
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ │ └── x86
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ ├── net40
│ │ │ │ ├── System.Data.SQLite.Core.targets
│ │ │ │ ├── x64
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ │ └── x86
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ ├── net45
│ │ │ │ ├── System.Data.SQLite.Core.targets
│ │ │ │ ├── x64
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ │ └── x86
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ ├── net451
│ │ │ │ ├── System.Data.SQLite.Core.targets
│ │ │ │ ├── x64
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ │ └── x86
│ │ │ │ │ └── SQLite.Interop.dll
│ │ │ └── net46
│ │ │ │ ├── System.Data.SQLite.Core.targets
│ │ │ │ ├── x64
│ │ │ │ └── SQLite.Interop.dll
│ │ │ │ └── x86
│ │ │ │ └── SQLite.Interop.dll
│ │ └── lib
│ │ │ ├── net20
│ │ │ ├── System.Data.SQLite.dll
│ │ │ ├── System.Data.SQLite.dll.config
│ │ │ └── System.Data.SQLite.xml
│ │ │ ├── net40
│ │ │ ├── System.Data.SQLite.dll
│ │ │ ├── System.Data.SQLite.dll.config
│ │ │ └── System.Data.SQLite.xml
│ │ │ ├── net45
│ │ │ ├── System.Data.SQLite.dll
│ │ │ ├── System.Data.SQLite.dll.config
│ │ │ └── System.Data.SQLite.xml
│ │ │ ├── net451
│ │ │ ├── System.Data.SQLite.dll
│ │ │ ├── System.Data.SQLite.dll.config
│ │ │ └── System.Data.SQLite.xml
│ │ │ └── net46
│ │ │ ├── System.Data.SQLite.dll
│ │ │ ├── System.Data.SQLite.dll.config
│ │ │ └── System.Data.SQLite.xml
│ ├── WebSocket4Net.0.15.2
│ │ ├── WebSocket4Net.0.15.2.nupkg
│ │ └── lib
│ │ │ ├── net20
│ │ │ └── WebSocket4Net.dll
│ │ │ ├── net35
│ │ │ └── WebSocket4Net.dll
│ │ │ ├── net40
│ │ │ └── WebSocket4Net.dll
│ │ │ ├── net45
│ │ │ ├── SuperSocket.ClientEngine.dll
│ │ │ └── WebSocket4Net.dll
│ │ │ └── netstandard1.3
│ │ │ └── WebSocket4Net.dll
│ ├── WindowsAPICodePack-Core.1.1.2
│ │ └── lib
│ │ │ ├── Microsoft.WindowsAPICodePack.dll
│ │ │ └── Microsoft.WindowsAPICodePack.xml
│ ├── WindowsAPICodePack-Shell.1.1.1
│ │ └── lib
│ │ │ ├── Microsoft.WindowsAPICodePack.Shell.dll
│ │ │ └── Microsoft.WindowsAPICodePack.Shell.xml
│ ├── WindowsAPICodePack-ShellExtensions.1.1.1
│ │ └── lib
│ │ │ ├── Microsoft.WindowsAPICodePack.ShellExtensions.dll
│ │ │ └── Microsoft.WindowsAPICodePack.ShellExtensions.xml
│ ├── detours
│ │ └── x64
│ │ │ ├── ChromeCookieKeyGetter.dll
│ │ │ ├── CryptPlugin.dll
│ │ │ ├── DetoursDll.dll
│ │ │ ├── DetoursNet.dll
│ │ │ ├── DetoursNetCLR.dll
│ │ │ ├── DetoursNetRuntime.dll
│ │ │ └── cryptHook.exe
│ ├── libcurl_http23
│ │ ├── libcrypto-81_3.dll
│ │ ├── libcurl.dll
│ │ ├── libssl-81_3.dll
│ │ ├── nghttp2.dll
│ │ ├── nghttp3.dll
│ │ ├── ngtcp2.dll
│ │ └── ngtcp2_crypto_openssl.dll
│ └── repositories.config
├── readme.html
└── rokugaTouroku
│ ├── Program.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── app.config
│ ├── curl_wrap.dll
│ ├── kari.snk
│ ├── libcrypto-81_3.dll
│ ├── libcurl.dll
│ ├── libssl-81_3.dll
│ ├── nghttp2.dll
│ ├── nghttp3.dll
│ ├── ngtcp2.dll
│ ├── ngtcp2_crypto_openssl.dll
│ ├── packages.config
│ ├── rokugaTouroku.OpenCover.Settings
│ ├── rokugaTouroku.csproj
│ ├── rokugaTouroku.sln
│ └── src
│ ├── Logger
│ └── TraceListener.cs
│ ├── config
│ └── config.cs
│ ├── gui
│ ├── MainForm.Designer.cs
│ ├── MainForm.cs
│ ├── MainForm.resx
│ ├── MfaInputForm.Designer.cs
│ ├── MfaInputForm.cs
│ ├── NicoSessionComboBox2.cs
│ ├── QualityForm.Designer.cs
│ ├── QualityForm.cs
│ ├── QualityForm.resx
│ ├── TimeShiftOptionForm.Designer.cs
│ ├── TimeShiftOptionForm.cs
│ ├── TimeShiftOptionForm.resx
│ ├── UpdateForm.Designer.cs
│ ├── UpdateForm.cs
│ ├── UrlBulkRegistForm.Designer.cs
│ ├── UrlBulkRegistForm.cs
│ ├── UrlBulkRegistForm.resx
│ ├── UrlListSaveForm.Designer.cs
│ ├── UrlListSaveForm.cs
│ ├── UrlListSaveForm.resx
│ ├── VersionForm.Designer.cs
│ ├── VersionForm.cs
│ ├── VersionForm.resx
│ ├── accountForm.Designer.cs
│ ├── accountForm.cs
│ ├── accountForm.resx
│ ├── argOptionForm.Designer.cs
│ ├── argOptionForm.cs
│ ├── argOptionForm.resx
│ ├── fileNameOptionForm.Designer.cs
│ ├── fileNameOptionForm.cs
│ ├── fileNameOptionForm.resx
│ ├── optionForm.Designer.cs
│ ├── optionForm.cs
│ ├── optionForm.resx
│ └── sortableList.cs
│ ├── info
│ ├── AccountInfo.cs
│ ├── RecInfo.cs
│ └── TimeShiftConfig.cs
│ ├── rec
│ ├── CookieGetter.cs
│ ├── HosoInfoGetter.cs
│ ├── RecDataGetter.cs
│ └── RecListManager.cs
│ └── util
│ ├── Curl.cs
│ ├── SourceInfoSerialize.cs
│ └── util.cs
└── siyou.md
/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/.gitignore
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## ニコ生 新配信録画ツール(仮)
2 |
3 | ニコ生のHLS新配信を録画するツールです。
4 | このツールを改良していただいても、もし参考になるところがあれば
5 | ソースを使って別のツールを作っていただいても構いません。
6 | リファクタリング大歓迎です。
7 |
8 | 製作中に見つけた[ニコ生新配信の仕様](siyou.md)を記してみました。
9 | ツールのダウンロードは[こちら](https://guest-nico.github.io/pages/downloads.html)
10 |
11 |
12 | ## ライセンス
13 | SnkLib.App.CookieGetter
14 |
15 | Copyright (c) 2014 namoshika様.
16 | Released under the GNU Lesser GPL
17 |
18 |
19 | CookieGetterSharp
20 |
21 | Copyright (c) 2014 halxxxx様、うつろ様、にょんにょん様、炬燵犬様, namoshika様
22 | Released under the GNU Lesser GPL
23 |
24 | WebSocket4Net
25 |
26 | Copyright (c) 2012 Kerry Jiang様
27 | licensed under the Apache License 2.0
28 |
29 |
30 | SuperSocket
31 |
32 | Copyright (c) 2012 Kerry Jiang様
33 | licensed under the Apache License 2.0
34 |
35 |
36 | FFmpeg・ffplay
37 |
38 | Copyright (c) 2000-2018 the FFmpeg developers
39 | GNU Lesser General Public License version 2.1 or later (LGPL v2.1+)
40 |
41 |
42 | Json.NET
43 |
44 | Copyright (c) 2007 James Newton-King
45 | licensed under the MIT License
46 |
47 |
48 | RTMPDump
49 |
50 | Copyright (C) 2009 Andrej Stepanchuk
51 | Copyright (C) 2010-2011 Howard Chu
52 | The Flvstreamer Team
53 | License: GPLv2
54 |
55 | Bouncy Castle
56 |
57 | Copyright (c) 2000 - 2020 The Legion of the Bouncy Castle Inc.
58 | MIT license
59 |
60 |
61 | curl
62 |
63 | Copyright (c) 1996 - 2022, Daniel Stenberg, , and many
64 | contributors, see the THANKS file.
65 | Curl and libcurl are licensed under the license below, which is inspired by MIT/X, but not identical.
66 |
67 |
68 | openssl
69 |
70 |
71 | Copyright (c) 1998-2022 The OpenSSL Project
72 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
73 | Copyright (c) Akamai and Microsoft
74 | Apache License 2.0
75 |
76 |
77 |
78 | nghttp3
79 |
80 | Copyright (c) 2019 nghttp3 contributors
81 | The MIT License
82 |
83 |
84 | ngtcp2
85 |
86 | Copyright (c) 2016 ngtcp2 contributors
87 | The MIT License
88 |
89 |
90 | nicolive-comment-protobuf
91 |
92 | Copyright (c) 2024 n-air-app
93 | MIT License
94 |
95 |
96 | VarintBitConverter
97 |
98 | Copyright (c) 2011 Tomas Pastorek, Ixone.cz.
99 | The 2-Clause BSD License
100 |
101 |
102 |
103 |
104 |
105 |
106 | ## 開発環境
107 | SharpDevelop4.4.2
108 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/(+.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/(+.ico
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/(+3.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/(+3.ico
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/(check.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/(check.ico
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/(rec.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/(rec.ico
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/(rec3.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/(rec3.ico
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.cs]
4 | indent_size = 4
5 | trim_trailing_whitespace = true
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/.nuget/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | # SharpDevelop 4.4
5 | VisualStudioVersion = 12.0.40629.0
6 | MinimumVisualStudioVersion = 10.0.40219.1
7 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "namaichi", "namaichi\namaichi.csproj", "{5E31FCA6-A895-4706-90BE-5024B24C1043}"
8 | EndProject
9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "rokugaTouroku", "rokugaTouroku\rokugaTouroku.csproj", "{D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}"
10 | EndProject
11 | Global
12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
13 | Debug|Any CPU = Debug|Any CPU
14 | Release|Any CPU = Release|Any CPU
15 | EndGlobalSection
16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
17 | {5E31FCA6-A895-4706-90BE-5024B24C1043}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18 | {5E31FCA6-A895-4706-90BE-5024B24C1043}.Debug|Any CPU.Build.0 = Debug|Any CPU
19 | {5E31FCA6-A895-4706-90BE-5024B24C1043}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {5E31FCA6-A895-4706-90BE-5024B24C1043}.Release|Any CPU.Build.0 = Release|Any CPU
21 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Release|Any CPU.Build.0 = Release|Any CPU
24 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | EndGlobalSection
26 | GlobalSection(SolutionProperties) = preSolution
27 | HideSolutionNode = FALSE
28 | EndGlobalSection
29 | GlobalSection(Performance) = preSolution
30 | HasPerformanceSessions = true
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi.v12.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi.v12.suo
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/Program.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: pc
4 | * Date: 2018/04/06
5 | * Time: 20:55
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Diagnostics;
11 | using System.Windows.Forms;
12 | using System.Net;
13 |
14 | namespace namaichi
15 | {
16 | ///
17 | /// Class with program entry point.
18 | ///
19 | internal sealed class Program
20 | {
21 | public static string arg = "";
22 |
23 | ///
24 | /// Program entry point.
25 | ///
26 | [STAThread]
27 | private static void Main(string[] args)
28 | {
29 | if (args.Length > 0) arg = util.getRegGroup(args[0], "(lv.+)");
30 |
31 | AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandleExceptionHandler);
32 | System.Threading.Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(UnhandleExceptionHandler);
33 | AppDomain.CurrentDomain.UnhandledException += UnhandleExceptionHandler;
34 | System.Threading.Thread.GetDomain().UnhandledException += UnhandleExceptionHandler;
35 | Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(threadException);
36 | Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
37 | System.Threading.Tasks.TaskScheduler.UnobservedTaskException += taskSchedulerUnobservedTaskException;
38 | AppDomain.CurrentDomain.FirstChanceException += firstChanceException;
39 |
40 | Application.EnableVisualStyles();
41 | Application.SetCompatibleTextRenderingDefault(false);
42 | try {
43 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
44 | } catch (Exception e) {
45 | Debug.WriteLine(e.Message + e.Source + e.StackTrace);
46 | util.isCurl = true;
47 | }
48 | util.isCurl = true;
49 |
50 | // args = new string[]{"-nowindo", "lv316266831", "-stdIO"};
51 | // args = new String[]{"lv316036760", "-ts-start=5m0s", "-ts-end=5m10s", "-afterConvertMode=4"};
52 | if (Array.IndexOf(args, "-nowindow") == -1) {
53 | Application.Run(new MainForm(args));
54 | } else {
55 | util.isShowWindow = false;
56 | var a = new MainForm(args);
57 | while(a.rec.isRecording) System.Threading.Thread.Sleep(1000);
58 | }
59 |
60 | }
61 | private static void UnhandleExceptionHandler(Object sender, UnhandledExceptionEventArgs e) {
62 | util.debugWriteLine("unhandled exception");
63 | var eo = (Exception)e.ExceptionObject;
64 | util.showException(eo);
65 |
66 | }
67 | static void threadException(object sender, System.Threading.ThreadExceptionEventArgs e) {
68 | util.debugWriteLine("thread exception");
69 | var eo = (Exception)e.Exception;
70 | util.showException(eo);
71 |
72 | }
73 | static private void taskSchedulerUnobservedTaskException(object sender,
74 | System.Threading.Tasks.UnobservedTaskExceptionEventArgs e) {
75 | util.debugWriteLine("task_unobserved exception");
76 | var eo = (Exception)e.Exception;
77 | util.showException(eo);
78 | e.SetObserved();
79 |
80 | }
81 | static private void firstChanceException(object sender,
82 | System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs e) {
83 | var frameCount = 0;
84 | try {
85 | frameCount = new System.Diagnostics.StackTrace().FrameCount;
86 | } catch (StackOverflowException) {
87 | //エラーのログを書き込むときにエラーが出た場合はそれ以上ログを書き込まないように
88 | return;
89 | }
90 | #if DEBUG
91 | if (util.isLogFile) {
92 | if (frameCount > 150) {
93 | // util.debugWriteLine("exception stacktrace framecount " + frameCount);
94 | MessageBox.Show("first chance framecount stack " + e.Exception.Message + e.Exception.StackTrace, frameCount.ToString() + " " + DateTime.Now + " " + arg);
95 | // if (e.Exception.GetType() == System.IO.IOException
96 | return;
97 | }
98 | }
99 | #else
100 |
101 | #endif
102 |
103 | util.debugWriteLine("exception stacktrace framecount " + frameCount);
104 |
105 | util.debugWriteLine("firstchance exception");
106 | var eo = (Exception)e.Exception;
107 | util.showException(eo, false);
108 | }
109 | }
110 |
111 | }
112 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | #region Using directives
2 |
3 | using System;
4 | using System.Reflection;
5 | using System.Runtime.InteropServices;
6 |
7 | #endregion
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("")]
17 | [assembly: AssemblyCopyright("Copyright 2018")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 |
21 | // This sets the default COM visibility of types in the assembly to invisible.
22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type.
23 | [assembly: ComVisible(false)]
24 |
25 | // The assembly version has following format :
26 | //
27 | // Major.Minor.Build.Revision
28 | //
29 | // You can specify all the values or you can use the default the Revision and
30 | // Build Numbers by using the '*' as shown below:
31 | [assembly: AssemblyVersion("1.0.*")]
32 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // このコードはツールによって生成されました。
4 | // ランタイム バージョン:4.0.30319.34014
5 | //
6 | // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7 | // コードが再生成されるときに損失したりします。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace namaichi.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/Properties/Settings.cs:
--------------------------------------------------------------------------------
1 | using System.Configuration;
2 |
3 | namespace namaichi.Properties
4 | {
5 | internal sealed partial class Settings
6 | {
7 | [UserScopedSetting, SettingsSerializeAs(SettingsSerializeAs.String)]
8 | public SunokoLibrary.Application.CookieSourceInfo SelectedSourceInfo
9 | {
10 | get { return (SunokoLibrary.Application.CookieSourceInfo)this["SelectedSourceInfo"]; }
11 | set { this["SelectedSourceInfo"] = value; }
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/curl_wrap.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/curl_wrap.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/kari.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/kari.snk
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/libcrypto-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/libcrypto-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/libcurl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/libcurl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/libgcc_s_dw2-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/libgcc_s_dw2-1.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/libssl-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/libssl-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/libwinpthread-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/libwinpthread-1.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/nghttp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/nghttp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/nghttp3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/nghttp3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/ngtcp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/ngtcp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/ngtcp2_crypto_openssl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/namaichi/ngtcp2_crypto_openssl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/Logger/TraceListener.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/06/13
5 | * Time: 3:23
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Diagnostics;
11 |
12 | namespace namaichi.Logger
13 | {
14 | ///
15 | /// Description of TraceListener.
16 | ///
17 | public class TraceListener:DefaultTraceListener
18 | {
19 | public TraceListener()
20 | {
21 | }
22 | public override void WriteLine(string msg) {
23 | try {
24 | //var dt = DateTime.Now.ToLongTimeString();
25 | var dt = DateTime.Now.ToString("dd HH:mm:ss");
26 | base.WriteLine(dt + " " + msg);
27 | } catch (Exception) {
28 | // util.debugWriteLine("trace listner exception " + e.Message + e.Source + e.StackTrace + e.TargetSite);
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/AikotobaInputForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: ajkkh
4 | * Date: 2024/11/19
5 | * Time: 8:09
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi.gui
10 | {
11 | partial class AikotobaInputForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.passText = new System.Windows.Forms.TextBox();
40 | this.label1 = new System.Windows.Forms.Label();
41 | this.cancelBtn = new System.Windows.Forms.Button();
42 | this.label2 = new System.Windows.Forms.Label();
43 | this.authBtn = new System.Windows.Forms.Button();
44 | this.msgText = new System.Windows.Forms.Label();
45 | this.SuspendLayout();
46 | //
47 | // passText
48 | //
49 | this.passText.Location = new System.Drawing.Point(12, 57);
50 | this.passText.Name = "passText";
51 | this.passText.Size = new System.Drawing.Size(282, 19);
52 | this.passText.TabIndex = 0;
53 | //
54 | // label1
55 | //
56 | this.label1.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
57 | this.label1.Location = new System.Drawing.Point(12, 18);
58 | this.label1.Name = "label1";
59 | this.label1.Size = new System.Drawing.Size(305, 16);
60 | this.label1.TabIndex = 1;
61 | this.label1.Text = "放送者から共有された合い言葉を入力してください";
62 | //
63 | // cancelBtn
64 | //
65 | this.cancelBtn.Location = new System.Drawing.Point(138, 123);
66 | this.cancelBtn.Name = "cancelBtn";
67 | this.cancelBtn.Size = new System.Drawing.Size(75, 23);
68 | this.cancelBtn.TabIndex = 2;
69 | this.cancelBtn.Text = "キャンセル";
70 | this.cancelBtn.UseVisualStyleBackColor = true;
71 | this.cancelBtn.Click += new System.EventHandler(this.CancelBtnClick);
72 | //
73 | // label2
74 | //
75 | this.label2.Location = new System.Drawing.Point(13, 79);
76 | this.label2.Name = "label2";
77 | this.label2.Size = new System.Drawing.Size(319, 27);
78 | this.label2.TabIndex = 1;
79 | this.label2.Text = "※合い言葉は半角英数のみで最大16文字です\r\n※空白を入れず、大文字・小文字に注意して入力してください";
80 | //
81 | // authBtn
82 | //
83 | this.authBtn.Location = new System.Drawing.Point(219, 123);
84 | this.authBtn.Name = "authBtn";
85 | this.authBtn.Size = new System.Drawing.Size(75, 23);
86 | this.authBtn.TabIndex = 2;
87 | this.authBtn.Text = "認証する";
88 | this.authBtn.UseVisualStyleBackColor = true;
89 | this.authBtn.Click += new System.EventHandler(this.AuthBtnClick);
90 | //
91 | // msgText
92 | //
93 | this.msgText.ForeColor = System.Drawing.Color.Red;
94 | this.msgText.Location = new System.Drawing.Point(16, 37);
95 | this.msgText.Name = "msgText";
96 | this.msgText.Size = new System.Drawing.Size(338, 17);
97 | this.msgText.TabIndex = 3;
98 | //
99 | // AikotobaInputForm
100 | //
101 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
102 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
103 | this.ClientSize = new System.Drawing.Size(344, 170);
104 | this.Controls.Add(this.msgText);
105 | this.Controls.Add(this.authBtn);
106 | this.Controls.Add(this.cancelBtn);
107 | this.Controls.Add(this.label2);
108 | this.Controls.Add(this.label1);
109 | this.Controls.Add(this.passText);
110 | this.Name = "AikotobaInputForm";
111 | this.Text = "合言葉を入力する";
112 | this.ResumeLayout(false);
113 | this.PerformLayout();
114 | }
115 | private System.Windows.Forms.Label msgText;
116 | private System.Windows.Forms.Button authBtn;
117 | private System.Windows.Forms.Label label2;
118 | private System.Windows.Forms.Button cancelBtn;
119 | private System.Windows.Forms.Label label1;
120 | private System.Windows.Forms.TextBox passText;
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/AikotobaInputForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: ajkkh
4 | * Date: 2024/11/19
5 | * Time: 8:09
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Net;
12 | using System.Windows.Forms;
13 | using namaichi.utility;
14 |
15 | namespace namaichi.gui
16 | {
17 | ///
18 | /// Description of AikotobaInputForm.
19 | ///
20 | public partial class AikotobaInputForm : Form
21 | {
22 | string lvid = null;
23 | CookieContainer cc;
24 | public AikotobaInputForm(string lvid, CookieContainer cc)
25 | {
26 | //
27 | // The InitializeComponent() call is required for Windows Forms designer support.
28 | //
29 | InitializeComponent();
30 |
31 | //
32 | // TODO: Add constructor code after the InitializeComponent() call.
33 | //
34 | this.lvid = lvid;
35 | this.cc = cc;
36 | }
37 | void CancelBtnClick(object sender, EventArgs e)
38 | {
39 | Close();
40 | }
41 |
42 | void AuthBtnClick(object sender, EventArgs e)
43 | {
44 | string errMsg = null;
45 | if (sendAikotoba(out errMsg)) {
46 | DialogResult = DialogResult.OK;
47 | Close();
48 | } else {
49 | msgText.Text = errMsg;
50 | }
51 | }
52 | bool sendAikotoba(out string msg) {
53 | msg = null;
54 |
55 | var url = "https://live2.nicovideo.jp/unama/api/v2/programs/" + lvid + "/password/permission";
56 | var h = util.getHeader(cc, "https://live.nicovideo.jp/", url);
57 | h.Add("X-niconico-session", "cookie");
58 | h.Add("Content-Type", "application/json");
59 | var data = "{\"password\":\"" + passText.Text + "\"}";
60 |
61 | var r = new Curl().getStr(url, h, CurlHttpVersion.CURL_HTTP_VERSION_2TLS, "POST", data, false, true, true);
62 | util.debugWriteLine(r);
63 | if (r.IndexOf("\"status\":200") == -1) {
64 | msg = r;
65 | return false;
66 | }
67 | return true;
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/DotNetMessageBox.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/16
5 | * Time: 13:23
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi
10 | {
11 | partial class DotNetMessageBox
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.panel1 = new System.Windows.Forms.Panel();
40 | this.label2 = new System.Windows.Forms.Label();
41 | this.button3 = new System.Windows.Forms.Button();
42 | this.panel1.SuspendLayout();
43 | this.SuspendLayout();
44 | //
45 | // panel1
46 | //
47 | this.panel1.BackColor = System.Drawing.Color.White;
48 | this.panel1.Controls.Add(this.label2);
49 | this.panel1.Location = new System.Drawing.Point(0, 0);
50 | this.panel1.Name = "panel1";
51 | this.panel1.Size = new System.Drawing.Size(365, 82);
52 | this.panel1.TabIndex = 1;
53 | //
54 | // label2
55 | //
56 | this.label2.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
57 | this.label2.Location = new System.Drawing.Point(12, 31);
58 | this.label2.Name = "label2";
59 | this.label2.Size = new System.Drawing.Size(330, 21);
60 | this.label2.TabIndex = 2;
61 | this.label2.Text = "動作には.NET 4.5.2以上が推奨です。";
62 | //
63 | // button3
64 | //
65 | this.button3.Location = new System.Drawing.Point(254, 102);
66 | this.button3.Name = "button3";
67 | this.button3.Size = new System.Drawing.Size(88, 26);
68 | this.button3.TabIndex = 3;
69 | this.button3.Text = "OK";
70 | this.button3.UseVisualStyleBackColor = true;
71 | this.button3.Click += new System.EventHandler(this.Button3Click);
72 | //
73 | // DotNetMessageBox
74 | //
75 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
76 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
77 | this.ClientSize = new System.Drawing.Size(363, 140);
78 | this.Controls.Add(this.button3);
79 | this.Controls.Add(this.panel1);
80 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
81 | this.Name = "DotNetMessageBox";
82 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
83 | this.panel1.ResumeLayout(false);
84 | this.ResumeLayout(false);
85 | }
86 | private System.Windows.Forms.Button button3;
87 | private System.Windows.Forms.Label label2;
88 | private System.Windows.Forms.Panel panel1;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/DotNetMessageBox.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/16
5 | * Time: 13:23
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi
14 | {
15 | ///
16 | /// Description of DotNetMessageBox.
17 | ///
18 | public partial class DotNetMessageBox : Form
19 | {
20 | public DotNetMessageBox(double ver, int fontSize)
21 | {
22 | //
23 | // The InitializeComponent() call is required for Windows Forms designer support.
24 | //
25 | InitializeComponent();
26 | // label2.Text += ver + "です。";
27 | //
28 | // TODO: Add constructor code after the InitializeComponent() call.
29 | //
30 | util.setFontSize(fontSize, this, false);
31 | }
32 |
33 | void Button3Click(object sender, EventArgs e)
34 | {
35 | Close();
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/MfaInputForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2023/05/03
5 | * Time: 8:37
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi.gui
10 | {
11 | partial class MfaInputForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.sendToLabel = new System.Windows.Forms.Label();
40 | this.label2 = new System.Windows.Forms.Label();
41 | this.codeText = new System.Windows.Forms.TextBox();
42 | this.cancelBtn = new System.Windows.Forms.Button();
43 | this.okBtn = new System.Windows.Forms.Button();
44 | this.label1 = new System.Windows.Forms.Label();
45 | this.SuspendLayout();
46 | //
47 | // sendToLabel
48 | //
49 | this.sendToLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
50 | | System.Windows.Forms.AnchorStyles.Right)));
51 | this.sendToLabel.Location = new System.Drawing.Point(12, 39);
52 | this.sendToLabel.Name = "sendToLabel";
53 | this.sendToLabel.Size = new System.Drawing.Size(308, 19);
54 | this.sendToLabel.TabIndex = 0;
55 | this.sendToLabel.Text = " に確認コードを送信しました";
56 | //
57 | // label2
58 | //
59 | this.label2.Location = new System.Drawing.Point(12, 58);
60 | this.label2.Name = "label2";
61 | this.label2.Size = new System.Drawing.Size(182, 19);
62 | this.label2.TabIndex = 1;
63 | this.label2.Text = "メールに記載された6桁の数字を入力";
64 | //
65 | // codeText
66 | //
67 | this.codeText.Location = new System.Drawing.Point(12, 80);
68 | this.codeText.Name = "codeText";
69 | this.codeText.Size = new System.Drawing.Size(85, 19);
70 | this.codeText.TabIndex = 2;
71 | //
72 | // cancelBtn
73 | //
74 | this.cancelBtn.Location = new System.Drawing.Point(232, 110);
75 | this.cancelBtn.Name = "cancelBtn";
76 | this.cancelBtn.Size = new System.Drawing.Size(74, 23);
77 | this.cancelBtn.TabIndex = 4;
78 | this.cancelBtn.Text = "キャンセル";
79 | this.cancelBtn.UseVisualStyleBackColor = true;
80 | this.cancelBtn.Click += new System.EventHandler(this.CancelBtnClick);
81 | //
82 | // okBtn
83 | //
84 | this.okBtn.Location = new System.Drawing.Point(152, 110);
85 | this.okBtn.Name = "okBtn";
86 | this.okBtn.Size = new System.Drawing.Size(74, 23);
87 | this.okBtn.TabIndex = 3;
88 | this.okBtn.Text = "OK";
89 | this.okBtn.UseVisualStyleBackColor = true;
90 | this.okBtn.Click += new System.EventHandler(this.OkBtnClick);
91 | //
92 | // label1
93 | //
94 | this.label1.Location = new System.Drawing.Point(12, 20);
95 | this.label1.Name = "label1";
96 | this.label1.Size = new System.Drawing.Size(257, 19);
97 | this.label1.TabIndex = 1;
98 | this.label1.Text = "ログインするには2段階認証の確認コードが必要です";
99 | //
100 | // MfaInputForm
101 | //
102 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
103 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
104 | this.ClientSize = new System.Drawing.Size(319, 145);
105 | this.Controls.Add(this.cancelBtn);
106 | this.Controls.Add(this.okBtn);
107 | this.Controls.Add(this.codeText);
108 | this.Controls.Add(this.label1);
109 | this.Controls.Add(this.label2);
110 | this.Controls.Add(this.sendToLabel);
111 | this.Name = "MfaInputForm";
112 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
113 | this.Text = "2段階認証";
114 | this.ResumeLayout(false);
115 | this.PerformLayout();
116 | }
117 | private System.Windows.Forms.Label label1;
118 | private System.Windows.Forms.Button okBtn;
119 | private System.Windows.Forms.Button cancelBtn;
120 | private System.Windows.Forms.TextBox codeText;
121 | private System.Windows.Forms.Label label2;
122 | private System.Windows.Forms.Label sendToLabel;
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/MfaInputForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2023/05/03
5 | * Time: 8:37
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi.gui
14 | {
15 | ///
16 | /// Description of MfaInputForm.
17 | ///
18 | public partial class MfaInputForm : Form
19 | {
20 | public string code = null;
21 | public MfaInputForm(string sendTo)
22 | {
23 | //
24 | // The InitializeComponent() call is required for Windows Forms designer support.
25 | //
26 | InitializeComponent();
27 |
28 | //
29 | // TODO: Add constructor code after the InitializeComponent() call.
30 | //
31 | if (sendTo != null) {
32 | if (sendTo != "app")
33 | sendToLabel.Text = sendTo + sendToLabel.Text;
34 | else {
35 | sendToLabel.Text = "スマートフォンのアプリを使って確認コードを取得してください";
36 | label2.Text = "アプリに表示された6桁の数字を入力";
37 | }
38 | }
39 | }
40 | void OkBtnClick(object sender, EventArgs e)
41 | {
42 | if (codeText.Text.Length != 6) {
43 | MessageBox.Show("入力されたコードが6文字ではありません。");
44 | return;
45 | }
46 | if (util.getRegGroup(codeText.Text, "(\\D)") != null) {
47 | MessageBox.Show("入力されたコードに数字以外の文字が含まれています。");
48 | return;
49 | }
50 | code = codeText.Text;
51 | Close();
52 | }
53 | void CancelBtnClick(object sender, EventArgs e)
54 | {
55 | Close();
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/RecordLogForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: ajkkh
4 | * Date: 2023/07/30
5 | * Time: 8:05
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi.gui
10 | {
11 | partial class RecordLogForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.textBox1 = new System.Windows.Forms.TextBox();
40 | this.textBox2 = new System.Windows.Forms.TextBox();
41 | this.label1 = new System.Windows.Forms.Label();
42 | this.label2 = new System.Windows.Forms.Label();
43 | this.SuspendLayout();
44 | //
45 | // textBox1
46 | //
47 | this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
48 | | System.Windows.Forms.AnchorStyles.Right)));
49 | this.textBox1.Location = new System.Drawing.Point(12, 27);
50 | this.textBox1.Multiline = true;
51 | this.textBox1.Name = "textBox1";
52 | this.textBox1.Size = new System.Drawing.Size(260, 194);
53 | this.textBox1.TabIndex = 0;
54 | //
55 | // textBox2
56 | //
57 | this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
58 | | System.Windows.Forms.AnchorStyles.Left)
59 | | System.Windows.Forms.AnchorStyles.Right)));
60 | this.textBox2.Location = new System.Drawing.Point(12, 248);
61 | this.textBox2.Multiline = true;
62 | this.textBox2.Name = "textBox2";
63 | this.textBox2.Size = new System.Drawing.Size(260, 73);
64 | this.textBox2.TabIndex = 1;
65 | //
66 | // label1
67 | //
68 | this.label1.Location = new System.Drawing.Point(12, 230);
69 | this.label1.Name = "label1";
70 | this.label1.Size = new System.Drawing.Size(103, 15);
71 | this.label1.TabIndex = 2;
72 | this.label1.Text = "ファイル取得ログ";
73 | //
74 | // label2
75 | //
76 | this.label2.Location = new System.Drawing.Point(12, 9);
77 | this.label2.Name = "label2";
78 | this.label2.Size = new System.Drawing.Size(103, 15);
79 | this.label2.TabIndex = 2;
80 | this.label2.Text = "全般";
81 | //
82 | // RecordLogForm
83 | //
84 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
85 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
86 | this.ClientSize = new System.Drawing.Size(284, 333);
87 | this.Controls.Add(this.label2);
88 | this.Controls.Add(this.label1);
89 | this.Controls.Add(this.textBox2);
90 | this.Controls.Add(this.textBox1);
91 | this.Name = "RecordLogForm";
92 | this.Text = "動作記録";
93 | this.ResumeLayout(false);
94 | this.PerformLayout();
95 | }
96 | private System.Windows.Forms.Label label2;
97 | private System.Windows.Forms.Label label1;
98 | private System.Windows.Forms.TextBox textBox2;
99 | private System.Windows.Forms.TextBox textBox1;
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/RecordLogForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: ajkkh
4 | * Date: 2023/07/30
5 | * Time: 8:05
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi.gui
14 | {
15 | ///
16 | /// Description of RecordLogForm.
17 | ///
18 | public partial class RecordLogForm : Form
19 | {
20 | public RecordLogForm()
21 | {
22 | //
23 | // The InitializeComponent() call is required for Windows Forms designer support.
24 | //
25 | InitializeComponent();
26 |
27 | //
28 | // TODO: Add constructor code after the InitializeComponent() call.
29 | //
30 | textBox1.Text = RecordLogInfo.getText();
31 | textBox2.Text = RecordLogInfo.getFileText();
32 | }
33 |
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/UpdateForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/22
5 | * Time: 4:10
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi
10 | {
11 | partial class UpdateForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.panel1 = new System.Windows.Forms.Panel();
40 | this.label3 = new System.Windows.Forms.Label();
41 | this.panel3 = new System.Windows.Forms.Panel();
42 | this.okBtn = new System.Windows.Forms.Button();
43 | this.panel2 = new System.Windows.Forms.Panel();
44 | this.panel3.SuspendLayout();
45 | this.SuspendLayout();
46 | //
47 | // panel1
48 | //
49 | this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
50 | this.panel1.Location = new System.Drawing.Point(0, 0);
51 | this.panel1.Name = "panel1";
52 | this.panel1.Size = new System.Drawing.Size(318, 13);
53 | this.panel1.TabIndex = 3;
54 | //
55 | // label3
56 | //
57 | this.label3.Dock = System.Windows.Forms.DockStyle.Top;
58 | this.label3.Location = new System.Drawing.Point(0, 13);
59 | this.label3.Name = "label3";
60 | this.label3.Size = new System.Drawing.Size(318, 24);
61 | this.label3.TabIndex = 4;
62 | this.label3.Text = "新しいバージョンの全てのファイルをこれまで使っていたフォルダに上書きコピーすると設定を引き継いでアップデートできます。";
63 | this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
64 | //
65 | // panel3
66 | //
67 | this.panel3.Controls.Add(this.okBtn);
68 | this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
69 | this.panel3.Location = new System.Drawing.Point(0, 47);
70 | this.panel3.Name = "panel3";
71 | this.panel3.Size = new System.Drawing.Size(318, 33);
72 | this.panel3.TabIndex = 25;
73 | //
74 | // okBtn
75 | //
76 | this.okBtn.AutoSize = true;
77 | this.okBtn.Location = new System.Drawing.Point(127, 3);
78 | this.okBtn.Name = "okBtn";
79 | this.okBtn.Size = new System.Drawing.Size(64, 24);
80 | this.okBtn.TabIndex = 23;
81 | this.okBtn.Text = "OK";
82 | this.okBtn.UseVisualStyleBackColor = true;
83 | this.okBtn.Click += new System.EventHandler(this.okBtnClick);
84 | //
85 | // panel2
86 | //
87 | this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
88 | this.panel2.Location = new System.Drawing.Point(0, 37);
89 | this.panel2.Name = "panel2";
90 | this.panel2.Size = new System.Drawing.Size(318, 10);
91 | this.panel2.TabIndex = 24;
92 | //
93 | // UpdateForm
94 | //
95 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
96 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
97 | this.ClientSize = new System.Drawing.Size(318, 80);
98 | this.Controls.Add(this.panel3);
99 | this.Controls.Add(this.panel2);
100 | this.Controls.Add(this.label3);
101 | this.Controls.Add(this.panel1);
102 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
103 | this.Name = "UpdateForm";
104 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
105 | this.Text = "更新方法";
106 | this.panel3.ResumeLayout(false);
107 | this.panel3.PerformLayout();
108 | this.ResumeLayout(false);
109 | }
110 | public System.Windows.Forms.Button okBtn;
111 | private System.Windows.Forms.Panel panel3;
112 | private System.Windows.Forms.Panel panel2;
113 | private System.Windows.Forms.Label label3;
114 | private System.Windows.Forms.Panel panel1;
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/UpdateForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2020/01/11
5 | * Time: 19:35
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi
14 | {
15 | ///
16 | /// Description of UpdateForm.
17 | ///
18 | public partial class UpdateForm : Form
19 | {
20 | public UpdateForm(int fontSize)
21 | {
22 | //
23 | // The InitializeComponent() call is required for Windows Forms designer support.
24 | //
25 | InitializeComponent();
26 |
27 | //
28 | // TODO: Add constructor code after the InitializeComponent() call.
29 | //
30 | util.setFontSize(fontSize, this, false);
31 | }
32 | void okBtnClick(object sender, EventArgs e)
33 | {
34 | Close();
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/VersionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/22
5 | * Time: 4:10
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 | using System.Text.RegularExpressions;
13 | using System.Threading.Tasks;
14 |
15 | namespace namaichi
16 | {
17 | ///
18 | /// Description of VersionForm.
19 | ///
20 | public partial class VersionForm : Form
21 | {
22 | private MainForm form;
23 | public VersionForm(int fontSize, MainForm form)
24 | {
25 | //
26 | // The InitializeComponent() call is required for Windows Forms designer support.
27 | //
28 | InitializeComponent();
29 | this.form = form;
30 | //
31 | // TODO: Add constructor code after the InitializeComponent() call.
32 | //
33 | versionLabel.Text = util.versionStr + " (" + util.versionDayStr + ")";
34 | //communityLinkLabel.Links.Add(0, communityLinkLabel.Text.Length, "http://com.nicovideo.jp/community/co2414037");
35 | util.setFontSize(fontSize, this, false);
36 | lastVersionLabel.Font = new Font(lastVersionLabel.Font, FontStyle.Italic);
37 | }
38 |
39 | void okBtnClick(object sender, EventArgs e)
40 | {
41 | Close();
42 | }
43 |
44 | void communityLinkLabel_Click(object sender, LinkLabelLinkClickedEventArgs e)
45 | {
46 | try {
47 | System.Diagnostics.Process.Start("https://com.nicovideo.jp/community/co2414037");
48 | } catch (Exception ee) {
49 | util.debugWriteLine(ee.Message + " " + ee.StackTrace);
50 | form.addLogText("ページの表示に失敗しました " + ee.Message + ee.Source + ee.StackTrace + ee.TargetSite);
51 | }
52 | }
53 |
54 | void VersionFormLoad(object sender, EventArgs e)
55 | {
56 | Task.Factory.StartNew(() => checkLastVersion());
57 | }
58 | private void checkLastVersion() {
59 | var r = util.getPageSource("https://github.com/guest-nico/nicoNewStreamRecorderKakkoKari/commits/master/");
60 | if (r == null) {
61 | form.formAction(() =>
62 | lastVersionLabel.Text = "最新の利用可能なバージョンを確認できませんでした");
63 | return;
64 | }
65 | var m = new Regex("https://github.com/guest-nico/nicoNewStreamRecorderKakkoKari/releases/download/releases/(.+?).(zip|rar)").Match(r);
66 | if (!m.Success) {
67 | form.formAction(() =>
68 | lastVersionLabel.Text = "最新の利用可能なバージョンが見つかりませんでした");
69 | return;
70 | }
71 | var v = m.Groups[1].Value;
72 | if (v.IndexOf(util.versionStr) > -1)
73 | form.formAction(() => lastVersionLabel.Text = "ニコ生新配信録画ツール(仮は最新バージョンです");
74 | else {
75 | form.formAction(() => {
76 | lastVersionLabel.Text = v + "が利用可能です";
77 | lastVersionLabel.Links.Clear();
78 | lastVersionLabel.Links.Add(0, v.Length, m.Value);
79 | //lastVersionLabel.LinkArea = new LinkArea(0, v.Length);
80 | });
81 | }
82 | }
83 |
84 | void LastVersionLabelLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
85 | {
86 | form.titleLabel_Click(sender, e);
87 | }
88 |
89 | void DownloadPageLinkLabelLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
90 | {
91 | var url = "https://guest-nico.github.io/pages/downloads.html";
92 | util.openUrl(url, bool.Parse(form.rec.cfg.get("IsdefaultBrowserPath")), form.rec.cfg.get("browserPath"));
93 | }
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/argOptionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/05/07
5 | * Time: 16:17
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi.gui
14 | {
15 | ///
16 | /// Description of ArgOptionForm.
17 | ///
18 | public partial class ArgOptionForm : Form
19 | {
20 | public string ret;
21 |
22 | public ArgOptionForm(int fontSize)
23 | {
24 | //
25 | // The InitializeComponent() call is required for Windows Forms designer support.
26 | //
27 | InitializeComponent();
28 | //
29 | // TODO: Add constructor code after the InitializeComponent() call.
30 | //
31 | util.setFontSize(fontSize, this, false);
32 | setSampleLabel();
33 | }
34 |
35 | void fileNameTypeOkBtn_Click(object sender, EventArgs e)
36 | {
37 | Close();
38 | }
39 |
40 | void fileNameTypeText_Changed(object sender, EventArgs e)
41 | {
42 | setSampleLabel();
43 | }
44 | void setSampleLabel() {
45 | fileNameTypeLabel.Text =
46 | util.getArgTypeSample(fileNameTypeText.Text);
47 | }
48 |
49 | void CopyBtnClick(object sender, EventArgs e)
50 | {
51 | Clipboard.SetText(fileNameTypeText.Text);
52 | }
53 |
54 | void FileNameTypeDefaultBtnClick(object sender, EventArgs e)
55 | {
56 | fileNameTypeText.Text = "-i {i} -c copy {o}.mp4";
57 | }
58 |
59 | void FileNameTypeDateBtnClick(object sender, EventArgs e)
60 | {
61 | fileNameTypeText.Text = "{nourl}";
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/fileNameOptionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/05/07
5 | * Time: 16:17
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace namaichi
14 | {
15 | ///
16 | /// Description of fileNameOptionForm.
17 | ///
18 | public partial class fileNameOptionForm : Form
19 | {
20 | public string ret;
21 |
22 | public fileNameOptionForm(string filenameformat, int fontSize)
23 | {
24 | //
25 | // The InitializeComponent() call is required for Windows Forms designer support.
26 | //
27 | InitializeComponent();
28 |
29 | fileNameTypeText.Text = filenameformat;
30 | fileNameTypeLabel.Text =
31 | util.getFileNameTypeSample(filenameformat);
32 | //
33 | // TODO: Add constructor code after the InitializeComponent() call.
34 | //
35 | util.setFontSize(fontSize, this, false);
36 | }
37 |
38 | void fileNameTypeOkBtn_Click(object sender, EventArgs e)
39 | {
40 | if (fileNameTypeText.Text.IndexOf("{0}") < 0) {
41 | //util.showMessageBoxCenterForm(this, "{0}は必ず入れてください", "注意", MessageBoxButtons.OK, MessageBoxIcon.None);
42 | if (MessageBox.Show("{0}がないです。このまま登録しますか?", "注意", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
43 | return;
44 | }
45 | DialogResult = DialogResult.OK;
46 | ret = fileNameTypeText.Text;
47 | Close();
48 | }
49 | void fileNameTypeCancelBtn_Click(object sender, EventArgs e)
50 | {
51 | DialogResult = DialogResult.Cancel;
52 | Close();
53 | }
54 |
55 | void fileNameTypeText_Changed(object sender, EventArgs e)
56 | {
57 | fileNameTypeLabel.Text =
58 | util.getFileNameTypeSample(fileNameTypeText.Text);
59 | }
60 |
61 | void fileNameTypeDefaultBtn_Click(object sender, EventArgs e)
62 | {
63 | fileNameTypeText.Text =
64 | "{Y}_{M}_{D}_{h}_{m}_{0}_{1}_{2}_{3}_{4}";
65 | }
66 | void fileNameTypeNitijiBtn_Click(object sender, EventArgs e)
67 | {
68 | fileNameTypeText.Text =
69 | "{Y}年{M}月{D}日({W}){h}時{m}分{1}_{0}_";
70 | }
71 | void fileNameTypeSimpleBtn_Click(object sender, EventArgs e)
72 | {
73 | fileNameTypeText.Text =
74 | "{0}_";
75 | }
76 | void fileNameTypeTitleBtn_Click(object sender, EventArgs e)
77 | {
78 | fileNameTypeText.Text =
79 | "{1}_{0}_";
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/placeHolderText.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/08/14
5 | * Time: 15:07
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi
10 | {
11 | partial class placeHolderText
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the control.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | //
40 | // placeHolderText
41 | //
42 | //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
43 | this.Name = "placeHolderText";
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/gui/placeTextBox5.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/08/13
5 | * Time: 15:36
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace namaichi
10 | {
11 | partial class placeTextBox5
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the control.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | //
40 | // placeTextBox5
41 | //
42 | //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
43 | this.Name = "placeTextBox5";
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/AccountInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2021/09/30
5 | * Time: 13:53
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using System.IO;
12 | using System.Net;
13 | using System.Text;
14 | using System.Xml.Serialization;
15 | using Newtonsoft.Json;
16 | using SunokoLibrary.Application;
17 |
18 | namespace namaichi.info
19 | {
20 | ///
21 | /// Description of AccountInfo.
22 | ///
23 | public class AccountInfo
24 | {
25 | public CookieSourceInfo si;
26 | public string accountId;
27 | public string accountPass;
28 | public string userSession;
29 | public bool isBrowser = false;
30 | public bool isAccount = false;
31 | public bool isUserSession = false;
32 | public AccountInfo(CookieSourceInfo si, string accountId,
33 | string accountPass, string userSession, bool isBrowser, bool isAccount,
34 | bool isUserSession)
35 | {
36 | this.si = si;
37 | this.accountId = accountId;
38 | this.accountPass = accountPass;
39 | this.userSession = userSession;
40 | this.isBrowser = isBrowser;
41 | this.isAccount = isAccount;
42 | this.isUserSession = isUserSession;
43 | }
44 | public static AccountInfo fromJsonArg(string arg) {
45 | util.debugWriteLine("AccountInfo fromJsonArg " + arg);
46 | try {
47 | var serializer = new XmlSerializer(typeof(AccountSetting));
48 | using (var ms = new MemoryStream()) {
49 | var b = Encoding.UTF8.GetBytes(arg);
50 | ms.Write(b, 0, b.Length);
51 | ms.Flush();
52 | ms.Seek(0, SeekOrigin.Begin);
53 | var _ai = (AccountSetting)serializer.Deserialize(ms);
54 | if (_ai.isBrowser) {
55 | var si = new CookieSourceInfo(_ai.BrowserName, _ai.ProfileName, _ai.CookiePath, _ai.EngineId, _ai.IsCustomized);
56 | return new AccountInfo(si, null, null, null, true, false, false);
57 | } else if (_ai.isAccount) {
58 | return new AccountInfo(null, _ai.mail, _ai.pass, null, false, true, false);
59 | } else {
60 | return new AccountInfo(null, null, null, _ai.userSession, false, false, true);
61 | }
62 | }
63 | } catch (Exception e) {
64 | util.debugWriteLine(e.Message + e.Source + e.StackTrace + e.TargetSite);
65 | return null;
66 | }
67 | }
68 | public class AccountSetting {
69 | public bool IsCustomized = false;
70 | public string BrowserName = null;
71 | public string ProfileName = null;
72 | public string CookiePath = null;
73 | public string EngineId = null;
74 | public string mail = "";
75 | public string pass = "";
76 | public string userSession = "";
77 | public bool isBrowser = false;
78 | public bool isAccount = false;
79 | public bool isUserSession = false;
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/M3u8Info.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: pc
4 | * Date: 2025/02/05
5 | * Time: 3:06
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using System.Linq;
12 | using System.Net;
13 | using System.Text.RegularExpressions;
14 | using System.Web;
15 | using namaichi.utility;
16 |
17 | namespace namaichi.info
18 | {
19 | ///
20 | /// Description of DliveM3u8Info.
21 | ///
22 | public class M3u8Info
23 | {
24 | public string url = null;
25 | string header = null;
26 | List urlList = new List();
27 | string localUrl = null;
28 | public M3u8Info(string url, string r, string localUrl)
29 | {
30 | this.url = url;
31 | this.localUrl = localUrl;
32 |
33 | //r = new Regex("\"*(http.+?)\"*").Replace(r, localUrl + HttpUtility.UrlEncode("$1"));
34 | var extinfI = r.IndexOf("#EXTINF");
35 | if (extinfI == -1) header = r;
36 | header = r.Substring(0, extinfI);
37 |
38 | addUrl(r);
39 | }
40 | public void addUrl(string r) {
41 | var second = 6.0;
42 | var secondSum = 0.0;
43 | foreach (var l in r.Replace("\r", "").Split('\n')) {
44 | if (l.IndexOf("#EXT-X-ENDLIST") > -1) {
45 | urlList.Add(new SegmentInfo("#EXT-X-ENDLIST", true, secondSum, second, int.MaxValue));
46 | break;
47 | }
48 | var _second = util.getRegGroup(l, "^#EXTINF:([^,]+)");
49 | if (_second != null) {
50 | second = double.Parse(_second);
51 |
52 | continue;
53 | }
54 | var m = new Regex("(http://.+?(\\d+).cmf[^\"\'\\s]+)").Match(l);
55 | if (!m.Success) continue;
56 | var url = m.Groups[1].Value;
57 | var n = int.Parse(m.Groups[2].Value);
58 | if (l.IndexOf("%2finit") > -1) continue; //n = 0;
59 | if (urlList.Count == 0 || n > urlList[urlList.Count - 1].n) {
60 | urlList.Add(new SegmentInfo(url, false, secondSum, second, n));
61 | secondSum += second;
62 | }
63 |
64 | //test
65 | //if (urlList.Count > 10)
66 | // break;
67 | }
68 |
69 | }
70 | public string getRes(TimeShiftConfig tsConfig, bool isTimeShift) {
71 | var b = header + "\n";
72 | var l = urlList.ToList();
73 | foreach (var u in l) {
74 | if (u.url == "#EXT-X-ENDLIST") {
75 | b += u.url;
76 | break;
77 | }
78 |
79 | if (isTimeShift) {
80 | if (u.startTime + u.second < tsConfig.timeSeconds)
81 | continue;
82 | if (tsConfig.endTimeSeconds != 0 && u.startTime > tsConfig.endTimeSeconds) {
83 | b += "#EXT-X-ENDLIST\n";
84 | break;
85 | }
86 | }
87 | b += "#EXTINF:6.00000\n";
88 | b += u.url + "\n";
89 |
90 | }
91 | return b;
92 | }
93 | class SegmentInfo {
94 | public string url = null;
95 | public bool isExtXEndlist = false;
96 | public double startTime = 0;
97 | public double second;
98 | public int n = 0;
99 | public SegmentInfo(string url,
100 | bool isExtXEndlist, double startTime,
101 | double second, int n) {
102 | this.url = url;
103 | this.isExtXEndlist = isExtXEndlist;
104 | this.startTime = startTime;
105 | this.second = second;
106 | this.n = n;
107 | }
108 | }
109 | }
110 | }
111 |
112 | //audioとvideoのm3u8の最初にinit00001がセグメントとして記述
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/RecordLogInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: ajkkh
4 | * Date: 2023/07/30
5 | * Time: 0:56
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using namaichi.info;
12 |
13 | //namespace namaichi.info
14 | //{
15 | ///
16 | /// Description of RecordInfo.
17 | ///
18 | public class RecordLogInfo
19 | {
20 | public static DateTime startTime = DateTime.MinValue;
21 | public static DateTime endTime = DateTime.MinValue;
22 | public static string lvid = "";
23 | public static string loginType = "";
24 | public static string foundLastUs = "";
25 | public static string loginLog = "";
26 | public static string recType = ""; //realtime timeshift chase
27 | //public static string lastState = "";
28 | public static string recordedStatus = "";
29 | public static List recBytesData = new List();
30 |
31 | public RecordLogInfo()
32 | {
33 | }
34 | public static void clear() {
35 | startTime = endTime = DateTime.MinValue;
36 | lvid = loginType = foundLastUs = loginLog =
37 | recType = recordedStatus = "";
38 | recBytesData.Clear();
39 | }
40 | public static string getText() {
41 | var osName = util.osName;
42 | if (osName != null){
43 | var _osName = util.getRegGroup(util.osName, "(.+)\\(");
44 | if (_osName != null) osName = _osName;
45 | }
46 | var r = "開始時間: " + startTime.ToString() + "\r\n";
47 | r += "終了時間: " + endTime.ToString() + "\r\n";
48 | r += "放送ID: " + lvid + "\r\n";
49 | r += "ログイン方法: " + loginType + "\r\n";
50 | r += "前回のユーザーセッション: " + foundLastUs + "\r\n";
51 | r += "ログインログ: " + loginLog + "\r\n";
52 | r += "動作種別: " + recType + "\r\n";;
53 | r += "転送状況: " + recordedStatus + "\r\n";
54 | r += "OS: " + osName + "\r\n";
55 | return r;
56 | }
57 | public static string getFileText() {
58 | var r = string.Join("\r\n", recBytesData.ToArray());
59 | return r;
60 | }
61 | public static void addrecBytesData(numTaskInfo nti) {
62 | try {
63 | recBytesData.Add(nti.no + "," + (nti.res == null ? "null" : nti.res.Length.ToString()) + "," + nti.second);
64 | } catch (Exception e) {
65 | recBytesData.Add("nti error " + e.Message + e.Source);
66 | }
67 | }
68 | }
69 | //}
70 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/RedistInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: user
4 | * Date: 2018/09/10
5 | * Time: 20:22
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 |
11 | namespace namaichi.info
12 | {
13 | ///
14 | /// Description of RedistInfo.
15 | ///
16 | public class RedistInfo
17 | {
18 | public TimeShiftConfig tsConfig;
19 | public string[] qualityRank;
20 | public int afterFFmpegMode;
21 |
22 | public RedistInfo(string[] args)
23 | {
24 | /*
25 | tsConfig = new TimeShiftConfig(int.Parse(args[2]),
26 | int.Parse(args[3]), int.Parse(args[4]),
27 | int.Parse(args[5]), int.Parse(args[6]),
28 | int.Parse(args[7]), int.Parse(args[8]),
29 | bool.Parse(args[9]), bool.Parse(args[10]),
30 | args[11], bool.Parse(args[12]),
31 | double.Parse(args[13]), bool.Parse(args[14]));
32 | qualityRank = args[15].Split(',');
33 | */
34 | afterFFmpegMode = int.Parse(args[2]);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/WatchingInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: user
4 | * Date: 2018/08/30
5 | * Time: 20:38
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 |
11 | namespace namaichi.info
12 | {
13 | ///
14 | /// Description of WatchingInfo.
15 | ///
16 | public class WatchingInfo
17 | {
18 | public string hlsUrl;
19 | public string msUri;
20 | public string chatThread;
21 | public string chatKey;
22 | public string controlThread;
23 | public string controlKey;
24 | public string msVersion;
25 | public long expireIn = 10000;
26 | public DateTime roomSince;
27 | public string visit;
28 | public string comment;
29 |
30 | public WatchingInfo(string res)
31 | {
32 | var ver = System.Environment.OSVersion.Version;
33 | var isSecure = ver.Major >= 6 && ver.Minor >= 1;
34 |
35 | hlsUrl = util.getRegGroup(res, "streamServer\".+?\"url\":\"(.+?)\"");
36 | msUri = util.getRegGroup(res, "\"messageServer\".+?\"" +
37 | ((isSecure) ? "wss" : "ws") + "\"\\:\"(.+?)\"");
38 | chatThread = util.getRegGroup(res, "\"threads\".+?\"chat\"\\:\"(.+?)\"");
39 | chatKey = util.getRegGroup(res, "\"chatThreadKey\"\\:\"(.+?)\"");
40 | controlThread = util.getRegGroup(res, "\"threads\".+?\"control\"\\:\"(.+?)\"");
41 | controlKey = util.getRegGroup(res, "\"controlThreadKey\"\\:\"(.+?)\"");
42 | msVersion = util.getRegGroup(res, "\"version\"\\:(\\d+)");
43 | var _expireIn = util.getRegGroup(res, "\"expireIn\"\\:(\\d+)");
44 | if (_expireIn != null) expireIn = long.Parse(_expireIn);
45 | var _roomSince = util.getRegGroup(res, "\"room\".+?\"since\"\\:\"(.+?)\"");
46 | roomSince = DateTime.Parse(_roomSince);
47 | visit = util.getRegGroup(res, "\"statistics\".+?\"viewers\"\\:(\\d+)");
48 | comment = util.getRegGroup(res, "\"statistics\".+?\"comments\"\\:(\\d+)");
49 | }
50 | public string[] getMessageRequest(string userId, int resfrom) {
51 | var chat = "[{\"ping\":{\"content\":\"rs:0\"}},{\"ping\":{\"content\":\"ps:0\"}},{\"thread\":{\"thread\":\"" + chatThread + "\",\"version\":\"" + msVersion + "\",\"fork\":0,\"user_id\":\"" + userId + "\",\"res_from\":" + resfrom + ",\"force_184\":\"0\",\"with_global\":1,\"scores\":1,\"nicoru\":0,\"threadkey\":\"" + chatKey + "\",\"service\":\"LIVE\"}},{\"ping\":{\"content\":\"pf:0\"}},{\"ping\":{\"content\":\"rf:0\"}}]";
52 | var control = "[{\"ping\":{\"content\":\"rs:1\"}},{\"ping\":{\"content\":\"ps:5\"}},{\"thread\":{\"thread\":\"" + controlThread + "\",\"version\":\"" + msVersion + "\",\"fork\":0,\"user_id\":\"" + userId + "\",\"res_from\":" + resfrom + ",\"force_184\":\"0\",\"with_global\":1,\"scores\":1,\"nicoru\":0,\"threadkey\":\"" + controlKey + "\",\"service\":\"LIVE\"}},{\"ping\":{\"content\":\"pf:5\"}},{\"ping\":{\"content\":\"rf:1\"}}]";
53 | return new string[]{chat, control};
54 | }
55 | public void setPutWatching(string res) {
56 |
57 | hlsUrl = util.getRegGroup(res, "streamServer\".+?\"url\":\"(.+?)\"");
58 | var _expireIn = util.getRegGroup(res, "\"expireIn\"\\:(\\d+)");
59 | if (_expireIn != null) expireIn = long.Parse(_expireIn);
60 | visit = util.getRegGroup(res, "\"statistics\".+?\"viewers\"\\:(\\d+)");
61 | comment = util.getRegGroup(res, "\"statistics\".+?\"comments\"\\:(\\d+)");
62 | util.debugWriteLine("setPutWatching hlsUrl " + hlsUrl);
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/info/numTaskInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: user
4 | * Date: 2018/10/12
5 | * Time: 0:11
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 |
11 | namespace namaichi.info
12 | {
13 | ///
14 | /// Description of numTaskInfo.
15 | ///
16 | public class numTaskInfo {
17 | public int no = -1;
18 | public string url = null;
19 | public byte[] res = null;
20 | public double second = 0;
21 | public string fileName = null;
22 | public DateTime dt;
23 | public int originNo = -1;
24 | public double startSecond = -1;
25 | public numTaskInfo(int no, string url, double second, string fileName, double startSecond, int originNo = -1) {
26 | this.no = no;
27 | this.url = url;
28 | this.second = second;
29 | this.fileName = fileName;
30 | dt = DateTime.Now;
31 | this.originNo = (originNo == -1) ? no : originNo;
32 | this.startSecond = startSecond;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/rec/DeflateDecoder.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/05
5 | * Time: 4:20
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.IO;
11 | using System.IO.Compression;
12 |
13 | namespace namaichi.rec
14 | {
15 | ///
16 | /// Description of DeflateDecoder.
17 | ///
18 | public class DeflateDecoder {
19 | private MemoryStream ms = new MemoryStream();
20 | //private DeflateStream ds;
21 | private StreamReader br;
22 | public DeflateDecoder() {
23 | var ds = new DeflateStream(ms, CompressionMode.Decompress);
24 | br = new StreamReader(ds, System.Text.Encoding.UTF8);
25 |
26 | }
27 | public string decode(byte[] b) {
28 | ms.Position = 0;
29 | ms.SetLength(0);
30 |
31 | ms.Write(b, 0, b.Length);
32 | /*
33 | if (b.Length > 100)
34 | ms.Write(b, 4, b.Length - 4);
35 | else
36 | ms.Write(b, 2, b.Length - 2);
37 | */
38 | ms.Write(new byte[]{0,0,255,255}, 0, 4);
39 | if (b.Length % 13 != 0 && false) {
40 | var n = (((int)(b.Length / 13)) + 1) * 13 - b.Length;
41 | ms.Write(new byte[n], 0, n);
42 | }
43 |
44 |
45 | ms.Flush();
46 | //ms.Position -= b.Length;
47 | ms.Position = 0;
48 |
49 | // util.debugWriteLine(string.Join(" ", ms.ToArray()));
50 | //byte[] o = new byte[int.MaxValue];
51 | try {
52 | //ds.Read(o, 0, o.Length);
53 | //o = br.ReadBytes(int.MaxValue);
54 | //return System.Text.Encoding.UTF8.GetString(br.ReadBytes(int.MaxValue));
55 | return br.ReadToEnd();
56 | } catch (Exception e) {
57 | util.debugWriteLine("decode exception " + e.Message + e.StackTrace + b);
58 | //util.debugWriteLine("exception " + o);
59 | return null;
60 | }
61 |
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/rec/IRecorderProcess.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/08/31
5 | * Time: 18:48
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using System.Net;
12 | using System.Threading;
13 | using namaichi.info;
14 | using WebSocket4Net;
15 |
16 | namespace namaichi.rec
17 | {
18 | ///
19 | /// Description of IRecorderProcess1.
20 | ///
21 | abstract public class IRecorderProcess
22 | {
23 | public CookieContainer container = null;
24 | internal RecordingManager rm;
25 | internal RecordFromUrl rfu;
26 | public DateTime tsHlsRequestTime = DateTime.MinValue;
27 | public TimeSpan tsStartTime;
28 | //public bool isTimeShift = false;
29 | public string msUri;
30 | public string[] msReq;
31 | public string msStoreUri;
32 | public string[] msStoreReq;
33 | //public long openTime;
34 | public bool isJikken;
35 | public bool isHokan = false;
36 | public string[] gotTsCommentList;
37 | public double firstSegmentSecond = -1;
38 |
39 | public long serverTime;
40 | public DateTime endTime = DateTime.MinValue;
41 | public RecordInfo ri;
42 | public bool isSaveComment = false;
43 | public long sync = 0;
44 | public bool IsRetry = true;
45 |
46 | public string visitCount = "0";
47 | public string commentCount = "0";
48 | public ITimeShiftCommentGetter tscg = null;
49 | public MpnCommentGetter mcg = null;
50 | public List commentReplaceList = null;
51 | public List chaseCommentBuf = new List();
52 | public TimeSpan jisa;
53 | public bool isDlive = false;
54 |
55 | public IRecorderProcess()
56 | {
57 | }
58 | abstract public void reConnect();
59 | abstract public void reConnect(WebSocket ws);
60 | // abstract public string[] getRecFilePath(long _openTime);
61 | abstract public string[] getRecFilePath();
62 | abstract public void sendComment(string s, bool is184);
63 | abstract public void resetCommentFile();
64 | abstract public void setSync(int no, double second, string m3u8Url);
65 | //abstract public void setRealTimeStatistics();
66 | public void setRealTimeStatistics() {
67 | try {
68 | if (!visitCount.StartsWith("-")) {
69 | Thread.Sleep(10000);
70 | string visit, comment;
71 | var ret = getStatistics(rfu.lvid, container, out visit, out comment);
72 | if (ret) {
73 | if (!visitCount.StartsWith("-")) {
74 | visitCount = "-" + visit;
75 | commentCount = "-" + comment;
76 | }
77 | }
78 | }
79 | } catch (Exception e) {
80 | util.debugWriteLine(e.Message + e.Source + e.StackTrace + e.TargetSite);
81 | }
82 | }
83 | abstract internal bool getStatistics(string lvid, CookieContainer cc, out string visit, out string comment);
84 | abstract public void stopRecording();
85 | abstract public void chaseCommentSum();
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/rec/ITimeShiftCommentGetter.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2022/05/13
5 | * Time: 13:10
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using System.IO;
12 | using namaichi.info;
13 |
14 | namespace namaichi.rec
15 | {
16 | ///
17 | /// Description of ITimeShiftCommentGetter.
18 | ///
19 | public abstract class ITimeShiftCommentGetter
20 | {
21 | public bool isEnd = false;
22 | internal bool isRetry = true;
23 | public List gotCommentList = new List();
24 | public List gotCommentListBuf = new List();
25 | internal bool isVposStartTime;
26 | internal int _gotMinTime;
27 | internal string[] _gotMinXml = new string[2];
28 | //internal string programType;
29 | //internal long openTime = 0;
30 | //internal long _openTime = 0;
31 | internal int gotCount = 0;
32 | internal int gotMinTime;
33 | internal string[] gotMinXml = new string[2];
34 | internal bool isLog = true;
35 | internal bool isReachStartTimeSave = false;
36 | internal string lastRealTimeComment = null;
37 | internal bool isStore;
38 | //internal string fileName;
39 | internal string recFolderFile;
40 | internal TimeShiftConfig tsConfig = null;
41 | public IRecorderProcess rp;
42 | internal RecordInfo ri = null;
43 |
44 | abstract public void save();
45 | public void setIsRetry(bool b) {
46 | isRetry = b;
47 | }
48 | internal int commentListCompare(GotCommentInfo x, GotCommentInfo y) {
49 | if (x.no >= 0 && y.no >= 0 && x.no != y.no) {
50 | return x.no - y.no;
51 | }
52 | if (x.date != y.date)
53 | return x.date - y.date;
54 |
55 | if (x.vpos != y.vpos)
56 | return x.vpos.CompareTo(y.vpos);
57 | return x.comment.CompareTo(y.comment);
58 | }
59 | internal void writeXmlStreamInfo(StreamWriter w) {
60 | var startTime = ri.si.openTime;
61 | var vposStartTime = (isVposStartTime) ? (long)rp.firstSegmentSecond : 0;
62 | if (ri.si.type == "official") {
63 | startTime = ri.si._openTime + vposStartTime;
64 | } else {
65 | startTime = ri.si.openTime + vposStartTime;
66 | }
67 | w.WriteLine("");
68 | w.WriteLine("room");
69 | w.WriteLine("" + startTime + "");
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/rec/OutputTimeShiftTsUrlList.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: user
4 | * Date: 2018/09/16
5 | * Time: 20:55
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.IO;
11 | using System.Diagnostics;
12 | using System.Threading;
13 | using System.Text.RegularExpressions;
14 | using namaichi.info;
15 |
16 | namespace namaichi.rec
17 | {
18 | ///
19 | /// Description of OutputTimeShiftTsUrlList.
20 | ///
21 | public class OutputTimeShiftTsUrlList
22 | {
23 | TimeShiftConfig tsConfig;
24 | RecordingManager rm;
25 |
26 | int startNum;
27 | public bool isStarted = false;
28 | private string ext = null;
29 |
30 | public OutputTimeShiftTsUrlList(TimeShiftConfig tsConfig, RecordingManager rm)
31 | {
32 | this.tsConfig = tsConfig;
33 | this.rm = rm;
34 | ext = rm.rfu.h5r.ri.isFmp4 ? ".mp4" : ".ts";
35 | }
36 | public void setStartNum(string playList) {
37 | startNum = int.Parse(util.getRegGroup(playList, "(\\d+)" + ext));
38 | }
39 | public void write(string playList, string _path, string baseUrl, TimeShiftConfig tsConfig) {
40 | isStarted = true;
41 | var path = _path + ((tsConfig.isM3u8List) ? ".m3u8" : ".txt");
42 |
43 | var _hasuu = util.getRegGroup(playList, "(\\d\\d+)" + ext);
44 | var hasuu = (_hasuu == null) ? 0 : int.Parse(_hasuu);
45 | hasuu = hasuu % 5000;
46 | var _duration = util.getRegGroup(playList, "#DMC-STREAM-DURATION:(.+)");
47 | var duration = double.Parse(_duration, System.Globalization.NumberStyles.Float);
48 | var _temp = util.getRegGroup(playList, "(.+\\" + ext + ".+)");
49 | var temp = baseUrl + _temp;
50 | var tempNum = util.getRegGroup(_temp, "(\\d+)");
51 |
52 | var ret = "";
53 | if (startNum >= tsConfig.timeSeconds * 1000)
54 | ret += temp.Replace(tempNum + ext, startNum.ToString() + ext);
55 | for (var i = 5000 + hasuu; i < duration * 1000; i += 5000) {
56 | if (i < tsConfig.timeSeconds * 1000 ||
57 | (tsConfig.endTimeSeconds != 0 && i > tsConfig.endTimeSeconds * 1000)) continue;
58 | if (ret != "") ret += "\r\n";
59 | ret += temp.Replace(tempNum + ext, i + ext);
60 | }
61 |
62 | if (tsConfig.isM3u8List) {
63 | writeM3u8List(path, ret);
64 | } else {
65 | using (var w = new StreamWriter(path, false)) {
66 | w.Write(ret);
67 | //w.Flush();
68 | //w.Close();
69 | }
70 | if (tsConfig.isOpenUrlList)
71 | openFile(path);
72 | }
73 | }
74 | private string openFile(string listPath) {
75 | var listDirPath = new FileInfo(listPath).Directory.ToString();
76 | //var o = listDirPath + "/out" + ext;
77 | //var _command = tsConfig.openListCommand.Replace("{i}", "\"" + listPath + "\"");
78 | //var _i = util.getRegGroup(tsConfig.openListCommand, "(\\{i\\}[^s]*)");
79 | //var _command = Regex.Replace(tsConfig.openListCommand, "\\{i\\}([^s]*)", "{$1}
80 | var _command = Regex.Replace(tsConfig.openListCommand, "\\{i\\}(\\S*)", "\"" + listPath + "$1\"");
81 | //_command = _command.Replace("{o}", o);
82 |
83 | string f = null;
84 | string arg = null;
85 | if (_command.StartsWith("\"")) {
86 | f = util.getRegGroup(_command, "\"(.+?)\"");
87 | arg = util.getRegGroup(_command, "\".+?\"(.+)");
88 | } else {
89 | f = util.getRegGroup(_command, "(.+?) ");
90 | arg = util.getRegGroup(_command, ".+? (.+)");
91 | }
92 | if (f == null || arg == null) return f + " " + arg;
93 |
94 | util.debugWriteLine(f + " " + arg);
95 | var p = new Process();
96 | p.StartInfo.FileName = f;
97 | p.StartInfo.Arguments = arg;
98 | p.Start();
99 | return "ok";
100 | }
101 | private void writeM3u8List(string path, string buf) {
102 | using (var w = new StreamWriter(path, false)) {
103 | w.WriteLine("#EXTM3U");
104 | w.WriteLine("#EXT-X-VERSION:3");
105 | w.WriteLine("#EXT-X-TARGETDURATION:" + (tsConfig.m3u8UpdateSeconds + 3).ToString());
106 | w.Flush();
107 | var isOpened = false;
108 | foreach(var b in buf.Split('\n')) {
109 | w.WriteLine("#EXTINF:" + tsConfig.m3u8UpdateSeconds.ToString() + ",");
110 | w.WriteLine(b);
111 | w.Flush();
112 |
113 | if (tsConfig.isOpenUrlList && !isOpened) {
114 | var openRes = openFile(path);
115 | if (openRes != "ok") {
116 | rm.form.addLogText(openRes);
117 | }
118 | isOpened = true;
119 | }
120 | Thread.Sleep((int)(tsConfig.m3u8UpdateSeconds * 1000));
121 | }
122 | w.WriteLine("#EXT-X-ENDLIST");
123 | //w.Close();
124 | }
125 |
126 | }
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/namaichi/src/util/RegGetter.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/11/16
5 | * Time: 0:21
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Text.RegularExpressions;
11 |
12 | namespace namaichi.utility
13 | {
14 | ///
15 | /// Description of RegGetter.
16 | ///
17 | public class RegGetter
18 | {
19 | //private Regex resStreamDuration;
20 | private Regex extXTargetDuration;
21 | private Regex _extXTargetDuration;
22 | private Regex extInf;
23 | private Regex extXEndlist;
24 | private Regex extXMap;
25 | private Regex streamDuration;
26 | private Regex ts;
27 | private Regex ts2;
28 | private Regex fName;
29 | private Regex extXMediaSequence;
30 | private Regex maxNo;
31 | private Regex lastTsNum;
32 | private Regex renameWithoutTime_time;
33 | private Regex renameWithoutTime_num;
34 |
35 | private Regex wrVisit;
36 | private Regex wrComment;
37 |
38 | public RegGetter()
39 | {
40 | }
41 | /*
42 | public Regex getStreamDuration() {
43 | if (resStreamDuration == null)
44 | resStreamDuration = new Regex("(#STREAM-DURATION)");
45 | return resStreamDuration;
46 | }
47 | */
48 | public Regex getExtXTargetDuration() {
49 | if (extXTargetDuration == null)
50 | extXTargetDuration = new Regex("#EXT-X-TARGETDURATION:(\\d+(\\.\\d+)*(e\\d+)*)");
51 | return extXTargetDuration;
52 | }
53 | public Regex getExtInf() {
54 | if (extInf == null)
55 | extInf = new Regex("^#EXTINF:(.+),");
56 | return extInf;
57 | }
58 | public Regex get_ExtXTargetDuration() {
59 | if (_extXTargetDuration == null)
60 | _extXTargetDuration = new Regex("^#EXT-X-TARGETDURATION:(\\d+(\\.\\d+)*(e\\d+)*)");
61 | return _extXTargetDuration;
62 | }
63 | public Regex getExtXMap() {
64 | if (extXMap == null)
65 | extXMap = new Regex("^#EXT-X-MAP:URI=\"(.+)\"");
66 | return extXMap;
67 | }
68 | public Regex getExtXEndlist() {
69 | if (extXEndlist == null)
70 | extXEndlist = new Regex("^(#EXT-X-ENDLIST)$");
71 | return extXEndlist;
72 | }
73 | public Regex getStreamDuration() {
74 | if (streamDuration == null)
75 | streamDuration = new Regex("#STREAM-DURATION:(.+)");
76 | return streamDuration;
77 | }
78 | public Regex getTs() {
79 | if (ts == null)
80 | ts = new Regex("(\\d+).(ts|mp4)");
81 | return ts;
82 | }
83 | public Regex getTs2() {
84 | if (ts2 == null)
85 | ts2 = new Regex("(.+?.(ts|mp4))\\?");
86 | return ts2;
87 | }
88 | public Regex getFName() {
89 | if (fName == null)
90 | fName = new Regex(".*(\\\\|/|^)(.+)");
91 | return fName;
92 | }
93 | public Regex getExtXMediaSequence() {
94 | if (extXMediaSequence == null)
95 | extXMediaSequence = new Regex("#EXT-X-MEDIA-SEQUENCE\\:(.+)");
96 | return extXMediaSequence;
97 | }
98 | public Regex getMaxNo() {
99 | if (maxNo == null)
100 | maxNo = new Regex("(\\d+)\\.(ts|mp4)");
101 | return maxNo;
102 | }
103 | public Regex getLastTsNum() {
104 | if (lastTsNum == null)
105 | lastTsNum = new Regex("[\\s\\S]+\n(\\d+).(ts|mp4)");
106 | return lastTsNum;
107 | }
108 | public Regex getRenameWithoutTime_time() {
109 | if (renameWithoutTime_time == null)
110 | renameWithoutTime_time = new Regex("(\\d+h\\d+m\\d+s)");
111 | return renameWithoutTime_time;
112 | }
113 | public Regex getRenameWithoutTime_num() {
114 | if (renameWithoutTime_num == null)
115 | renameWithoutTime_num = new Regex("\\d+h\\d+m\\d+s_(\\d+)");
116 | return renameWithoutTime_num;
117 | }
118 |
119 | //websocketRecorder
120 | public Regex getWrVisit() {
121 | if (wrVisit == null)
122 | //wrVisit = new Regex("{\"type\":\"watch\",\"body\":{\"command\":\"statistics\",\"params\":\\[\"(\\d+?)\",\"\\d+?\"");
123 | wrVisit = new Regex("\"data\":{\"viewers\":(\\d*),\"comments\":\\d*");
124 |
125 | return wrVisit;
126 | }
127 | public Regex getWrComment() {
128 | if (wrComment == null)
129 | wrComment = new Regex("\"data\":{\"viewers\":\\d*,\"comments\":(\\d*)");
130 | return wrComment;
131 | }
132 | }
133 | }
134 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Microsoft.Web.Xdt.2.1.1/Microsoft.Web.Xdt.2.1.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Microsoft.Web.Xdt.2.1.1/Microsoft.Web.Xdt.2.1.1.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/Newtonsoft.Json.9.0.1/tools/install.ps1:
--------------------------------------------------------------------------------
1 | param($installPath, $toolsPath, $package, $project)
2 |
3 | # open json.net splash page on package install
4 | # don't open if json.net is installed as a dependency
5 |
6 | try
7 | {
8 | $url = "http://www.newtonsoft.com/json/install?version=" + $package.Version
9 | $dte2 = Get-Interface $dte ([EnvDTE80.DTE2])
10 |
11 | if ($dte2.ActiveWindow.Caption -eq "Package Manager Console")
12 | {
13 | # user is installing from VS NuGet console
14 | # get reference to the window, the console host and the input history
15 | # show webpage if "install-package newtonsoft.json" was last input
16 |
17 | $consoleWindow = $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow])
18 |
19 | $props = $consoleWindow.GetType().GetProperties([System.Reflection.BindingFlags]::Instance -bor `
20 | [System.Reflection.BindingFlags]::NonPublic)
21 |
22 | $prop = $props | ? { $_.Name -eq "ActiveHostInfo" } | select -first 1
23 | if ($prop -eq $null) { return }
24 |
25 | $hostInfo = $prop.GetValue($consoleWindow)
26 | if ($hostInfo -eq $null) { return }
27 |
28 | $history = $hostInfo.WpfConsole.InputHistory.History
29 |
30 | $lastCommand = $history | select -last 1
31 |
32 | if ($lastCommand)
33 | {
34 | $lastCommand = $lastCommand.Trim().ToLower()
35 | if ($lastCommand.StartsWith("install-package") -and $lastCommand.Contains("newtonsoft.json"))
36 | {
37 | $dte2.ItemOperations.Navigate($url) | Out-Null
38 | }
39 | }
40 | }
41 | else
42 | {
43 | # user is installing from VS NuGet dialog
44 | # get reference to the window, then smart output console provider
45 | # show webpage if messages in buffered console contains "installing...newtonsoft.json" in last operation
46 |
47 | $instanceField = [NuGet.Dialog.PackageManagerWindow].GetField("CurrentInstance", [System.Reflection.BindingFlags]::Static -bor `
48 | [System.Reflection.BindingFlags]::NonPublic)
49 |
50 | $consoleField = [NuGet.Dialog.PackageManagerWindow].GetField("_smartOutputConsoleProvider", [System.Reflection.BindingFlags]::Instance -bor `
51 | [System.Reflection.BindingFlags]::NonPublic)
52 |
53 | if ($instanceField -eq $null -or $consoleField -eq $null) { return }
54 |
55 | $instance = $instanceField.GetValue($null)
56 |
57 | if ($instance -eq $null) { return }
58 |
59 | $consoleProvider = $consoleField.GetValue($instance)
60 | if ($consoleProvider -eq $null) { return }
61 |
62 | $console = $consoleProvider.CreateOutputConsole($false)
63 |
64 | $messagesField = $console.GetType().GetField("_messages", [System.Reflection.BindingFlags]::Instance -bor `
65 | [System.Reflection.BindingFlags]::NonPublic)
66 | if ($messagesField -eq $null) { return }
67 |
68 | $messages = $messagesField.GetValue($console)
69 | if ($messages -eq $null) { return }
70 |
71 | $operations = $messages -split "=============================="
72 |
73 | $lastOperation = $operations | select -last 1
74 |
75 | if ($lastOperation)
76 | {
77 | $lastOperation = $lastOperation.ToLower()
78 |
79 | $lines = $lastOperation -split "`r`n"
80 |
81 | $installMatch = $lines | ? { $_.StartsWith("------- installing...newtonsoft.json ") } | select -first 1
82 |
83 | if ($installMatch)
84 | {
85 | $dte2.ItemOperations.Navigate($url) | Out-Null
86 | }
87 | }
88 | }
89 | }
90 | catch
91 | {
92 | try
93 | {
94 | $pmPane = $dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item("Package Manager")
95 |
96 | $selection = $pmPane.TextDocument.Selection
97 | $selection.StartOfDocument($false)
98 | $selection.EndOfDocument($true)
99 |
100 | if ($selection.Text.StartsWith("Attempting to gather dependencies information for package 'Newtonsoft.Json." + $package.Version + "'"))
101 | {
102 | # don't show on upgrade
103 | if (!$selection.Text.Contains("Removed package"))
104 | {
105 | $dte2.ItemOperations.Navigate($url) | Out-Null
106 | }
107 | }
108 | }
109 | catch
110 | {
111 | # stop potential errors from bubbling up
112 | # worst case the splash page won't open
113 | }
114 | }
115 |
116 | # still yolo
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Build.2.12.0/NuGet.Build.2.12.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Build.2.12.0/NuGet.Build.2.12.0.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/NuGet.Client.4.2.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/NuGet.Client.4.2.0.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/lib/net45/NuGet.Client.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/lib/net45/NuGet.Client.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/lib/netstandard1.3/NuGet.Client.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Client.4.2.0/lib/netstandard1.3/NuGet.Client.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.CommandLine.1.0.11220.26/NuGet.CommandLine.1.0.11220.26.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.CommandLine.1.0.11220.26/NuGet.CommandLine.1.0.11220.26.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.CommandLine.1.0.11220.26/Tools/NuGet.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.CommandLine.1.0.11220.26/Tools/NuGet.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/NuGet.Common.4.6.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/NuGet.Common.4.6.2.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/lib/net46/NuGet.Common.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/lib/net46/NuGet.Common.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/lib/netstandard1.3/NuGet.Common.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Common.4.6.2/lib/netstandard1.3/NuGet.Common.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/NuGet.Frameworks.4.6.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/NuGet.Frameworks.4.6.2.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/net40/NuGet.Frameworks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/net40/NuGet.Frameworks.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/net46/NuGet.Frameworks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/net46/NuGet.Frameworks.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/netstandard1.3/NuGet.Frameworks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/NuGet.Frameworks.4.6.2/lib/netstandard1.3/NuGet.Frameworks.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/x86/SnkLib.App.CookieGetter.x86Proxy.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net40/x86/SnkLib.App.CookieGetter.x86Proxy.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/x86/SnkLib.App.CookieGetter.x86Proxy.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/build/net45/x86/SnkLib.App.CookieGetter.x86Proxy.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/lib/net40/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/lib/net40/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/lib/net45/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.0.0/lib/net45/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net40/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net40/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net45/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/build/net45/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/lib/net40/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/lib/net40/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/lib/net45/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.2.0/lib/net45/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net40/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net40/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net40/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net45/Deploy.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | $(BuildDependsOn);
30 | CopyEnclosedFiles;
31 |
32 |
33 | $(CleanDependsOn);
34 | CleanEnclosedFiles;
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net45/SnkLib.App.CookieGetter.LibChecker.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/build/net45/SnkLib.App.CookieGetter.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | $(BuildDependsOn);
32 | CopyLibCheckerFiles;
33 |
34 |
35 | $(CleanDependsOn);
36 | CleanLibCheckerFiles;
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/lib/net40/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/lib/net40/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/lib/net45/SnkLib.App.CookieGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.2.4.4.0/lib/net45/SnkLib.App.CookieGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net40/SnkLib.App.CookieGetter.Forms.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net40/SnkLib.App.CookieGetter.Forms.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net40/SnkLib.App.CookieGetter.Forms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SnkLib.App.CookieGetter.Forms
5 |
6 |
7 |
8 |
9 | アカウント一覧の表示用コンボボックス。
10 |
11 |
12 |
13 |
14 | 指定したViewModelでコントロールを初期化します。
15 |
16 |
17 |
18 |
19 | 任意のCookieファイルを指定するためのファイル選択ダイアログを表示する。
20 |
21 |
22 |
23 |
24 | ブラウザ選択のViewModelを取得、設定します。
25 |
26 |
27 |
28 |
29 | ニコニコ動画アカウント一覧の表示用コンボボックス。
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net45/SnkLib.App.CookieGetter.Forms.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net45/SnkLib.App.CookieGetter.Forms.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.1.0/lib/net45/SnkLib.App.CookieGetter.Forms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SnkLib.App.CookieGetter.Forms
5 |
6 |
7 |
8 |
9 | アカウント一覧の表示用コンボボックス。
10 |
11 |
12 |
13 |
14 | 指定したViewModelでコントロールを初期化します。
15 |
16 |
17 |
18 |
19 | 任意のCookieファイルを指定するためのファイル選択ダイアログを表示する。
20 |
21 |
22 |
23 |
24 | ブラウザ選択のViewModelを取得、設定します。
25 |
26 |
27 |
28 |
29 | ニコニコ動画アカウント一覧の表示用コンボボックス。
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net40/SnkLib.App.CookieGetter.Forms.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net40/SnkLib.App.CookieGetter.Forms.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net40/SnkLib.App.CookieGetter.Forms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SnkLib.App.CookieGetter.Forms
5 |
6 |
7 |
8 |
9 | アカウント一覧の表示用コンボボックス。
10 |
11 |
12 |
13 |
14 | ブラウザ選択のViewModelを取得、設定します。
15 |
16 |
17 |
18 |
19 | 指定したViewModelでコントロールを初期化します。
20 |
21 |
22 |
23 |
24 | 任意のCookieファイルを指定するためのファイル選択ダイアログを表示する。
25 |
26 |
27 |
28 |
29 | ニコニコ動画アカウント一覧の表示用コンボボックス。
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net45/SnkLib.App.CookieGetter.Forms.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net45/SnkLib.App.CookieGetter.Forms.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/lib/net45/SnkLib.App.CookieGetter.Forms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SnkLib.App.CookieGetter.Forms
5 |
6 |
7 |
8 |
9 | アカウント一覧の表示用コンボボックス。
10 |
11 |
12 |
13 |
14 | ブラウザ選択のViewModelを取得、設定します。
15 |
16 |
17 |
18 |
19 | 指定したViewModelでコントロールを初期化します。
20 |
21 |
22 |
23 |
24 | 任意のCookieファイルを指定するためのファイル選択ダイアログを表示する。
25 |
26 |
27 |
28 |
29 | ニコニコ動画アカウント一覧の表示用コンボボックス。
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SnkLib.App.CookieGetter.Forms.1.4.3.0/package/services/metadata/core-properties/fb92d0547bd643ebb6d64cf495002a98.psmdcp:
--------------------------------------------------------------------------------
1 | namoshikaSnkLib.App.CookieGetterを使用し、ブラウザのCookieを取り込む際に使えるUI部品を提供します。SnkLib.App.CookieGetter.Forms1.4.3.0Browser Cookie GetterSnkLib.App.CookieGetter.FormsNuGet, Version=2.8.60318.667, Culture=neutral, PublicKeyToken=null;Microsoft Windows NT 6.2.9200.0;.NET Framework 4
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/SuperSocket.ClientEngine.Core.0.10.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/SuperSocket.ClientEngine.Core.0.10.0.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net20/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net20/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net35-client/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net35-client/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net40-client/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net40-client/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net45/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/net45/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/netstandard1.3/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/netstandard1.3/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/sl50/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/SuperSocket.ClientEngine.Core.0.10.0/lib/sl50/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/System.Data.SQLite.Core.1.0.108.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/System.Data.SQLite.Core.1.0.108.0.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net20/x64/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net20/x64/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net20/x86/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net20/x86/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net40/x64/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net40/x64/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net40/x86/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net40/x86/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net45/x64/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net45/x64/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net45/x86/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net45/x86/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net451/x64/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net451/x64/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net451/x86/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net451/x86/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net46/x64/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net46/x64/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net46/x86/SQLite.Interop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/build/net46/x86/SQLite.Interop.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net20/System.Data.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net20/System.Data.SQLite.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net20/System.Data.SQLite.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net40/System.Data.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net40/System.Data.SQLite.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net40/System.Data.SQLite.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net45/System.Data.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net45/System.Data.SQLite.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net45/System.Data.SQLite.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net451/System.Data.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net451/System.Data.SQLite.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net451/System.Data.SQLite.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net46/System.Data.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net46/System.Data.SQLite.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/System.Data.SQLite.Core.1.0.108.0/lib/net46/System.Data.SQLite.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/WebSocket4Net.0.15.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/WebSocket4Net.0.15.2.nupkg
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net20/WebSocket4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net20/WebSocket4Net.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net35/WebSocket4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net35/WebSocket4Net.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net40/WebSocket4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net40/WebSocket4Net.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net45/SuperSocket.ClientEngine.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net45/SuperSocket.ClientEngine.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net45/WebSocket4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/net45/WebSocket4Net.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/netstandard1.3/WebSocket4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WebSocket4Net.0.15.2/lib/netstandard1.3/WebSocket4Net.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-ShellExtensions.1.1.1/lib/Microsoft.WindowsAPICodePack.ShellExtensions.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/WindowsAPICodePack-ShellExtensions.1.1.1/lib/Microsoft.WindowsAPICodePack.ShellExtensions.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/ChromeCookieKeyGetter.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/ChromeCookieKeyGetter.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/CryptPlugin.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/CryptPlugin.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursDll.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursDll.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNet.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNet.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNetCLR.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNetCLR.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNetRuntime.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/DetoursNetRuntime.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/detours/x64/cryptHook.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/detours/x64/cryptHook.exe
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libcrypto-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libcrypto-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libcurl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libcurl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libssl-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/libssl-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/nghttp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/nghttp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/nghttp3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/nghttp3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/ngtcp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/ngtcp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/ngtcp2_crypto_openssl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/packages/libcurl_http23/ngtcp2_crypto_openssl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/packages/repositories.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/Program.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/10
5 | * Time: 16:20
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Windows.Forms;
11 | using System.Net;
12 |
13 | namespace rokugaTouroku
14 | {
15 | ///
16 | /// Class with program entry point.
17 | ///
18 | internal sealed class Program
19 | {
20 | ///
21 | /// Program entry point.
22 | ///
23 | public static string arg = "";
24 |
25 | [STAThread]
26 | private static void Main(string[] args)
27 | {
28 | if (args.Length > 0) arg = util.getRegGroup(args[0], "(lv.+)");
29 |
30 | AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandleExceptionHandler);
31 | System.Threading.Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(UnhandleExceptionHandler);
32 | AppDomain.CurrentDomain.UnhandledException += UnhandleExceptionHandler;
33 | System.Threading.Thread.GetDomain().UnhandledException += UnhandleExceptionHandler;
34 | Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(threadException);
35 | Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
36 | System.Threading.Tasks.TaskScheduler.UnobservedTaskException += taskSchedulerUnobservedTaskException;
37 | AppDomain.CurrentDomain.FirstChanceException += firstChanceException;
38 |
39 | Application.EnableVisualStyles();
40 | Application.SetCompatibleTextRenderingDefault(false);
41 | System.Net.ServicePointManager.DefaultConnectionLimit = 20;
42 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls |SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
43 |
44 | var form = new MainForm(args);
45 | form.mutex = util.doubleRunCheck();
46 | if (form.mutex == null) {
47 | Application.Exit();
48 | return;
49 | }
50 | Application.Run(form);
51 | //args = new string[]{"lv888"};
52 | //var a = new MainForm(args);
53 | //while(true) System.Threading.Thread.Sleep(1000);
54 | }
55 | private static void UnhandleExceptionHandler(Object sender, UnhandledExceptionEventArgs e) {
56 | util.debugWriteLine("unhandled exception");
57 | var eo = (Exception)e.ExceptionObject;
58 | util.showException(eo);
59 |
60 | }
61 | static void threadException(object sender, System.Threading.ThreadExceptionEventArgs e) {
62 | util.debugWriteLine("thread exception");
63 | var eo = (Exception)e.Exception;
64 | util.showException(eo);
65 |
66 | }
67 | static private void taskSchedulerUnobservedTaskException(object sender,
68 | System.Threading.Tasks.UnobservedTaskExceptionEventArgs e) {
69 | util.debugWriteLine("task_unobserved exception");
70 | var eo = (Exception)e.Exception;
71 | util.showException(eo);
72 | e.SetObserved();
73 |
74 | }
75 | static private void firstChanceException(object sender,
76 | System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs e) {
77 | var frameCount = new System.Diagnostics.StackTrace().FrameCount;
78 | #if DEBUG
79 | if (util.isLogFile) {
80 | if (frameCount > 150) {
81 | MessageBox.Show("first chance framecount stack " + e.Exception.Message + e.Exception.StackTrace, frameCount.ToString() + " " + DateTime.Now + " " + arg);
82 | return;
83 | }
84 | }
85 | #else
86 |
87 | #endif
88 |
89 | util.debugWriteLine("exception stacktrace framecount " + frameCount);
90 |
91 | util.debugWriteLine("firstchance exception");
92 | var eo = (Exception)e.Exception;
93 | util.showException(eo, false);
94 |
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | #region Using directives
2 |
3 | using System;
4 | using System.Reflection;
5 | using System.Runtime.InteropServices;
6 |
7 | #endregion
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("rokugaTouroku")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("rokugaTouroku")]
17 | [assembly: AssemblyCopyright("Copyright 2018")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 |
21 | // This sets the default COM visibility of types in the assembly to invisible.
22 | // If you need to expose a type to COM, use [ComVisible(true)] on that type.
23 | [assembly: ComVisible(false)]
24 |
25 | // The assembly version has following format :
26 | //
27 | // Major.Minor.Build.Revision
28 | //
29 | // You can specify all the values or you can use the default the Revision and
30 | // Build Numbers by using the '*' as shown below:
31 | [assembly: AssemblyVersion("1.0.*")]
32 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/curl_wrap.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/curl_wrap.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/kari.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/kari.snk
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libcrypto-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libcrypto-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libcurl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libcurl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libssl-81_3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/libssl-81_3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/nghttp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/nghttp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/nghttp3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/nghttp3.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/ngtcp2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/ngtcp2.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/ngtcp2_crypto_openssl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guest-nico/nicoNewStreamRecorderKakkoKari/9053fa66e30eb9e958437d6423c8efe05ac079f6/nicoNewStreamRecorderKakkoKari/rokugaTouroku/ngtcp2_crypto_openssl.dll
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/rokugaTouroku.OpenCover.Settings:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/rokugaTouroku.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Studio 2010
4 | # SharpDevelop 4.4
5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "rokugaTouroku", "rokugaTouroku.csproj", "{D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}"
6 | EndProject
7 | Global
8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
9 | Debug|Any CPU = Debug|Any CPU
10 | Release|Any CPU = Release|Any CPU
11 | EndGlobalSection
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
13 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Release|Any CPU.Build.0 = Release|Any CPU
16 | {D5EF4095-FA38-4ADB-9F7C-3A61BEE2EA98}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | EndGlobalSection
18 | EndGlobal
19 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/Logger/TraceListener.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/06/13
5 | * Time: 3:23
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Diagnostics;
11 |
12 | namespace rokugaTouroku.Logger
13 | {
14 | ///
15 | /// Description of TraceListener.
16 | ///
17 | public class TraceListener:DefaultTraceListener
18 | {
19 | public TraceListener()
20 | {
21 | }
22 | public override void WriteLine(string msg) {
23 | try {
24 | var dt = DateTime.Now.ToLongTimeString();
25 | base.WriteLine(dt + " " + msg);
26 | } catch (Exception) {
27 |
28 | // util.debugWriteLine("trace listner exception " + e.Message + e.Source + e.StackTrace + e.TargetSite);
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/MfaInputForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2023/05/19
5 | * Time: 7:04
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace rokugaTouroku.gui
10 | {
11 | partial class MfaInputForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.sendToLabel = new System.Windows.Forms.Label();
40 | this.label2 = new System.Windows.Forms.Label();
41 | this.codeText = new System.Windows.Forms.TextBox();
42 | this.cancelBtn = new System.Windows.Forms.Button();
43 | this.okBtn = new System.Windows.Forms.Button();
44 | this.label1 = new System.Windows.Forms.Label();
45 | this.SuspendLayout();
46 | //
47 | // sendToLabel
48 | //
49 | this.sendToLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
50 | | System.Windows.Forms.AnchorStyles.Right)));
51 | this.sendToLabel.Location = new System.Drawing.Point(12, 39);
52 | this.sendToLabel.Name = "sendToLabel";
53 | this.sendToLabel.Size = new System.Drawing.Size(308, 19);
54 | this.sendToLabel.TabIndex = 0;
55 | this.sendToLabel.Text = " に確認コードを送信しました";
56 | //
57 | // label2
58 | //
59 | this.label2.Location = new System.Drawing.Point(12, 58);
60 | this.label2.Name = "label2";
61 | this.label2.Size = new System.Drawing.Size(182, 19);
62 | this.label2.TabIndex = 1;
63 | this.label2.Text = "メールに記載された6桁の数字を入力";
64 | //
65 | // codeText
66 | //
67 | this.codeText.Location = new System.Drawing.Point(12, 80);
68 | this.codeText.Name = "codeText";
69 | this.codeText.Size = new System.Drawing.Size(85, 19);
70 | this.codeText.TabIndex = 2;
71 | //
72 | // cancelBtn
73 | //
74 | this.cancelBtn.Location = new System.Drawing.Point(232, 110);
75 | this.cancelBtn.Name = "cancelBtn";
76 | this.cancelBtn.Size = new System.Drawing.Size(74, 23);
77 | this.cancelBtn.TabIndex = 4;
78 | this.cancelBtn.Text = "キャンセル";
79 | this.cancelBtn.UseVisualStyleBackColor = true;
80 | this.cancelBtn.Click += new System.EventHandler(this.CancelBtnClick);
81 | //
82 | // okBtn
83 | //
84 | this.okBtn.Location = new System.Drawing.Point(152, 110);
85 | this.okBtn.Name = "okBtn";
86 | this.okBtn.Size = new System.Drawing.Size(74, 23);
87 | this.okBtn.TabIndex = 3;
88 | this.okBtn.Text = "OK";
89 | this.okBtn.UseVisualStyleBackColor = true;
90 | this.okBtn.Click += new System.EventHandler(this.OkBtnClick);
91 | //
92 | // label1
93 | //
94 | this.label1.Location = new System.Drawing.Point(12, 20);
95 | this.label1.Name = "label1";
96 | this.label1.Size = new System.Drawing.Size(257, 19);
97 | this.label1.TabIndex = 1;
98 | this.label1.Text = "ログインするには2段階認証の確認コードが必要です";
99 | //
100 | // MfaInputForm
101 | //
102 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
103 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
104 | this.ClientSize = new System.Drawing.Size(319, 145);
105 | this.Controls.Add(this.cancelBtn);
106 | this.Controls.Add(this.okBtn);
107 | this.Controls.Add(this.codeText);
108 | this.Controls.Add(this.label1);
109 | this.Controls.Add(this.label2);
110 | this.Controls.Add(this.sendToLabel);
111 | this.Name = "MfaInputForm";
112 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
113 | this.Text = "2段階認証";
114 | this.ResumeLayout(false);
115 | this.PerformLayout();
116 | }
117 | private System.Windows.Forms.Label label1;
118 | private System.Windows.Forms.Button okBtn;
119 | private System.Windows.Forms.Button cancelBtn;
120 | private System.Windows.Forms.TextBox codeText;
121 | private System.Windows.Forms.Label label2;
122 | private System.Windows.Forms.Label sendToLabel;
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/MfaInputForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2023/05/19
5 | * Time: 7:04
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace rokugaTouroku.gui
14 | {
15 | ///
16 | /// Description of MfaInputForm.
17 | ///
18 | public partial class MfaInputForm : Form
19 | {
20 | public string code = null;
21 | public MfaInputForm(string sendTo)
22 | {
23 | //
24 | // The InitializeComponent() call is required for Windows Forms designer support.
25 | //
26 | InitializeComponent();
27 |
28 | //
29 | // TODO: Add constructor code after the InitializeComponent() call.
30 | //
31 | if (sendTo != null) {
32 | if (sendTo != "app")
33 | sendToLabel.Text = sendTo + sendToLabel.Text;
34 | else {
35 | sendToLabel.Text = "スマートフォンのアプリを使って確認コードを取得してください";
36 | label2.Text = "アプリに表示された6桁の数字を入力";
37 | }
38 | }
39 | }
40 | void OkBtnClick(object sender, EventArgs e)
41 | {
42 | if (codeText.Text.Length != 6) {
43 | MessageBox.Show("入力されたコードが6文字ではありません。");
44 | return;
45 | }
46 | if (util.getRegGroup(codeText.Text, "(\\D)") != null) {
47 | MessageBox.Show("入力されたコードに数字以外の文字が含まれています。");
48 | return;
49 | }
50 | code = codeText.Text;
51 | Close();
52 | }
53 | void CancelBtnClick(object sender, EventArgs e)
54 | {
55 | Close();
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UpdateForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/22
5 | * Time: 4:10
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace rokugaTouroku
10 | {
11 | partial class UpdateForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.panel1 = new System.Windows.Forms.Panel();
40 | this.label3 = new System.Windows.Forms.Label();
41 | this.panel3 = new System.Windows.Forms.Panel();
42 | this.okBtn = new System.Windows.Forms.Button();
43 | this.panel2 = new System.Windows.Forms.Panel();
44 | this.panel3.SuspendLayout();
45 | this.SuspendLayout();
46 | //
47 | // panel1
48 | //
49 | this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
50 | this.panel1.Location = new System.Drawing.Point(0, 0);
51 | this.panel1.Name = "panel1";
52 | this.panel1.Size = new System.Drawing.Size(318, 13);
53 | this.panel1.TabIndex = 3;
54 | //
55 | // label3
56 | //
57 | this.label3.Dock = System.Windows.Forms.DockStyle.Top;
58 | this.label3.Location = new System.Drawing.Point(0, 13);
59 | this.label3.Name = "label3";
60 | this.label3.Size = new System.Drawing.Size(318, 24);
61 | this.label3.TabIndex = 4;
62 | this.label3.Text = "新しいバージョンの全てのファイルをこれまで使っていたフォルダに上書きコピーすると設定を引き継いでアップデートできます。";
63 | this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
64 | //
65 | // panel3
66 | //
67 | this.panel3.Controls.Add(this.okBtn);
68 | this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
69 | this.panel3.Location = new System.Drawing.Point(0, 47);
70 | this.panel3.Name = "panel3";
71 | this.panel3.Size = new System.Drawing.Size(318, 33);
72 | this.panel3.TabIndex = 25;
73 | //
74 | // okBtn
75 | //
76 | this.okBtn.AutoSize = true;
77 | this.okBtn.Location = new System.Drawing.Point(127, 3);
78 | this.okBtn.Name = "okBtn";
79 | this.okBtn.Size = new System.Drawing.Size(64, 24);
80 | this.okBtn.TabIndex = 23;
81 | this.okBtn.Text = "OK";
82 | this.okBtn.UseVisualStyleBackColor = true;
83 | this.okBtn.Click += new System.EventHandler(this.okBtnClick);
84 | //
85 | // panel2
86 | //
87 | this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
88 | this.panel2.Location = new System.Drawing.Point(0, 37);
89 | this.panel2.Name = "panel2";
90 | this.panel2.Size = new System.Drawing.Size(318, 10);
91 | this.panel2.TabIndex = 24;
92 | //
93 | // UpdateForm
94 | //
95 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
96 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
97 | this.ClientSize = new System.Drawing.Size(318, 80);
98 | this.Controls.Add(this.panel3);
99 | this.Controls.Add(this.panel2);
100 | this.Controls.Add(this.label3);
101 | this.Controls.Add(this.panel1);
102 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
103 | this.Name = "UpdateForm";
104 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
105 | this.Text = "更新方法";
106 | this.panel3.ResumeLayout(false);
107 | this.panel3.PerformLayout();
108 | this.ResumeLayout(false);
109 | }
110 | public System.Windows.Forms.Button okBtn;
111 | private System.Windows.Forms.Panel panel3;
112 | private System.Windows.Forms.Panel panel2;
113 | private System.Windows.Forms.Label label3;
114 | private System.Windows.Forms.Panel panel1;
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UpdateForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2020/01/11
5 | * Time: 19:51
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace rokugaTouroku
14 | {
15 | ///
16 | /// Description of UpdateForm.
17 | ///
18 | public partial class UpdateForm : Form
19 | {
20 | public UpdateForm(int fontSize)
21 | {
22 | //
23 | // The InitializeComponent() call is required for Windows Forms designer support.
24 | //
25 | InitializeComponent();
26 |
27 | //
28 | // TODO: Add constructor code after the InitializeComponent() call.
29 | //
30 | util.setFontSize(fontSize, this, false);
31 | }
32 | void okBtnClick(object sender, EventArgs e)
33 | {
34 | Close();
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UrlBulkRegistForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/21
5 | * Time: 4:39
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace rokugaTouroku
10 | {
11 | partial class UrlBulkRegistForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.label1 = new System.Windows.Forms.Label();
40 | this.registText = new System.Windows.Forms.TextBox();
41 | this.registBtn = new System.Windows.Forms.Button();
42 | this.cancelBtn = new System.Windows.Forms.Button();
43 | this.SuspendLayout();
44 | //
45 | // label1
46 | //
47 | this.label1.Location = new System.Drawing.Point(13, 8);
48 | this.label1.Name = "label1";
49 | this.label1.Size = new System.Drawing.Size(218, 52);
50 | this.label1.TabIndex = 0;
51 | this.label1.Text = "(入力例)\r\nhttps://live.nicovideo.jp/watch/XXXXX\r\nhttps://live.nicovideo.jp/watch/YYYYY" +
52 | "\r\nhttps://live.nicovideo.jp/watch/AAAA\r\n";
53 | //
54 | // registText
55 | //
56 | this.registText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
57 | | System.Windows.Forms.AnchorStyles.Left)
58 | | System.Windows.Forms.AnchorStyles.Right)));
59 | this.registText.Location = new System.Drawing.Point(13, 63);
60 | this.registText.Multiline = true;
61 | this.registText.Name = "registText";
62 | this.registText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
63 | this.registText.Size = new System.Drawing.Size(330, 205);
64 | this.registText.TabIndex = 1;
65 | //
66 | // registBtn
67 | //
68 | this.registBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
69 | this.registBtn.Location = new System.Drawing.Point(197, 276);
70 | this.registBtn.Name = "registBtn";
71 | this.registBtn.Size = new System.Drawing.Size(66, 23);
72 | this.registBtn.TabIndex = 2;
73 | this.registBtn.Text = "登録";
74 | this.registBtn.UseVisualStyleBackColor = true;
75 | this.registBtn.Click += new System.EventHandler(this.RegistBtnClick);
76 | //
77 | // cancelBtn
78 | //
79 | this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
80 | this.cancelBtn.Location = new System.Drawing.Point(278, 276);
81 | this.cancelBtn.Name = "cancelBtn";
82 | this.cancelBtn.Size = new System.Drawing.Size(66, 23);
83 | this.cancelBtn.TabIndex = 3;
84 | this.cancelBtn.Text = "キャンセル";
85 | this.cancelBtn.UseVisualStyleBackColor = true;
86 | this.cancelBtn.Click += new System.EventHandler(this.CancelBtnClick);
87 | //
88 | // UrlBulkRegistForm
89 | //
90 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
91 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
92 | this.ClientSize = new System.Drawing.Size(355, 309);
93 | this.Controls.Add(this.cancelBtn);
94 | this.Controls.Add(this.registBtn);
95 | this.Controls.Add(this.registText);
96 | this.Controls.Add(this.label1);
97 | this.Name = "UrlBulkRegistForm";
98 | this.ShowIcon = false;
99 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
100 | this.Text = "URL一括登録";
101 | this.ResumeLayout(false);
102 | this.PerformLayout();
103 | }
104 | private System.Windows.Forms.Button cancelBtn;
105 | private System.Windows.Forms.Button registBtn;
106 | private System.Windows.Forms.TextBox registText;
107 | private System.Windows.Forms.Label label1;
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UrlBulkRegistForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/21
5 | * Time: 4:39
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 | using System.Collections.Generic;
13 |
14 | namespace rokugaTouroku
15 | {
16 | ///
17 | /// Description of UrlBulkRegistForm.
18 | ///
19 | public partial class UrlBulkRegistForm : Form
20 | {
21 | public List res = null;
22 |
23 | public UrlBulkRegistForm(int fontSize)
24 | {
25 | //
26 | // The InitializeComponent() call is required for Windows Forms designer support.
27 | //
28 | InitializeComponent();
29 |
30 | //
31 | // TODO: Add constructor code after the InitializeComponent() call.
32 | //
33 | util.setFontSize(fontSize, this, false);
34 | }
35 |
36 | void CancelBtnClick(object sender, EventArgs e)
37 | {
38 | Close();
39 | }
40 |
41 | void RegistBtnClick(object sender, EventArgs e)
42 | {
43 | var l = new List();
44 | foreach (var s in registText.Text.Split('\n')) {
45 | var r = util.getRegGroup(s, "(lv\\d+(,\\d+)*)");
46 | if (r != null) l.Add(r);
47 | }
48 | res = l;
49 | Close();
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UrlListSaveForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/21
5 | * Time: 5:57
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | namespace rokugaTouroku
10 | {
11 | partial class UrlListSaveForm
12 | {
13 | ///
14 | /// Designer variable used to keep track of non-visual components.
15 | ///
16 | private System.ComponentModel.IContainer components = null;
17 |
18 | ///
19 | /// Disposes resources used by the form.
20 | ///
21 | /// true if managed resources should be disposed; otherwise, false.
22 | protected override void Dispose(bool disposing)
23 | {
24 | if (disposing) {
25 | if (components != null) {
26 | components.Dispose();
27 | }
28 | }
29 | base.Dispose(disposing);
30 | }
31 |
32 | ///
33 | /// This method is required for Windows Forms designer support.
34 | /// Do not change the method contents inside the source code editor. The Forms designer might
35 | /// not be able to load this method if it was changed manually.
36 | ///
37 | private void InitializeComponent()
38 | {
39 | this.urlListText = new System.Windows.Forms.TextBox();
40 | this.cancelBtn = new System.Windows.Forms.Button();
41 | this.saveBtn = new System.Windows.Forms.Button();
42 | this.SuspendLayout();
43 | //
44 | // urlListText
45 | //
46 | this.urlListText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
47 | | System.Windows.Forms.AnchorStyles.Left)
48 | | System.Windows.Forms.AnchorStyles.Right)));
49 | this.urlListText.Location = new System.Drawing.Point(13, 29);
50 | this.urlListText.Multiline = true;
51 | this.urlListText.Name = "urlListText";
52 | this.urlListText.Size = new System.Drawing.Size(267, 198);
53 | this.urlListText.TabIndex = 0;
54 | //
55 | // cancelBtn
56 | //
57 | this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
58 | this.cancelBtn.Location = new System.Drawing.Point(205, 231);
59 | this.cancelBtn.Name = "cancelBtn";
60 | this.cancelBtn.Size = new System.Drawing.Size(66, 23);
61 | this.cancelBtn.TabIndex = 2;
62 | this.cancelBtn.Text = "閉じる";
63 | this.cancelBtn.UseVisualStyleBackColor = true;
64 | this.cancelBtn.Click += new System.EventHandler(this.CancelBtnClick);
65 | //
66 | // saveBtn
67 | //
68 | this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
69 | this.saveBtn.Location = new System.Drawing.Point(105, 231);
70 | this.saveBtn.Name = "saveBtn";
71 | this.saveBtn.Size = new System.Drawing.Size(93, 23);
72 | this.saveBtn.TabIndex = 1;
73 | this.saveBtn.Text = "ファイルに保存";
74 | this.saveBtn.UseVisualStyleBackColor = true;
75 | this.saveBtn.Click += new System.EventHandler(this.SaveBtnClick);
76 | //
77 | // UrlListSaveForm
78 | //
79 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
80 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
81 | this.ClientSize = new System.Drawing.Size(292, 266);
82 | this.Controls.Add(this.cancelBtn);
83 | this.Controls.Add(this.saveBtn);
84 | this.Controls.Add(this.urlListText);
85 | this.Name = "UrlListSaveForm";
86 | this.ShowIcon = false;
87 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
88 | this.Text = "URLリストの保存";
89 | this.ResumeLayout(false);
90 | this.PerformLayout();
91 | }
92 | private System.Windows.Forms.Button saveBtn;
93 | private System.Windows.Forms.Button cancelBtn;
94 | private System.Windows.Forms.TextBox urlListText;
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/UrlListSaveForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/12/21
5 | * Time: 5:57
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 | using System.IO;
13 |
14 | namespace rokugaTouroku
15 | {
16 | ///
17 | /// Description of UrlListSaveForm.
18 | ///
19 | public partial class UrlListSaveForm : Form
20 | {
21 | public UrlListSaveForm(string t, int fontSize)
22 | {
23 | //
24 | // The InitializeComponent() call is required for Windows Forms designer support.
25 | //
26 | InitializeComponent();
27 |
28 | urlListText.Text = t;
29 | urlListText.SelectionStart = urlListText.Text.Length;
30 | //
31 | // TODO: Add constructor code after the InitializeComponent() call.
32 | //
33 | util.setFontSize(fontSize, this, false);
34 | }
35 |
36 | void CancelBtnClick(object sender, EventArgs e)
37 | {
38 | Close();
39 | }
40 |
41 | void SaveBtnClick(object sender, EventArgs e)
42 | {
43 | var f = new SaveFileDialog();
44 | f.DefaultExt = ".txt";
45 | f.FileName = "URLlist";
46 | f.Filter = "TEXT形式(*.txt)|*.txt*";
47 | var a = f.ShowDialog();
48 | if (a == DialogResult.OK) {
49 | var sw = new StreamWriter(f.FileName, false);
50 | sw.Write(urlListText.Text);
51 | sw.Close();
52 | }
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/VersionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/09/22
5 | * Time: 4:10
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 | using System.Text.RegularExpressions;
13 | using System.Threading.Tasks;
14 |
15 | namespace rokugaTouroku
16 | {
17 | ///
18 | /// Description of VersionForm.
19 | ///
20 | public partial class VersionForm : Form
21 | {
22 | private MainForm form;
23 | public VersionForm(int fontSize, MainForm form)
24 | {
25 | //
26 | // The InitializeComponent() call is required for Windows Forms designer support.
27 | //
28 | InitializeComponent();
29 | this.form = form;
30 |
31 | //
32 | // TODO: Add constructor code after the InitializeComponent() call.
33 | //
34 | versionLabel.Text = util.versionStr + " (" + util.versionDayStr + ")";
35 | //communityLinkLabel.Links.Add(0, communityLinkLabel.Text.Length, "https://com.nicovideo.jp/community/co2414037");
36 | util.setFontSize(fontSize, this, false);
37 | lastVersionLabel.Font = new Font(lastVersionLabel.Font, FontStyle.Italic);
38 | }
39 |
40 | void okBtnClick(object sender, EventArgs e)
41 | {
42 | Close();
43 | }
44 |
45 | void communityLinkLabel_Click(object sender, LinkLabelLinkClickedEventArgs e)
46 | {
47 | System.Diagnostics.Process.Start("https://com.nicovideo.jp/community/co2414037");
48 | }
49 |
50 | void VersionFormLoad(object sender, EventArgs e)
51 | {
52 | Task.Factory.StartNew(() => checkLastVersion());
53 | }
54 | private void checkLastVersion() {
55 | var r = util.getPageSource("https://github.com/guest-nico/nicoNewStreamRecorderKakkoKari/commits/master/");
56 | if (r == null) {
57 | form.formAction(() =>
58 | lastVersionLabel.Text = "最新の利用可能なバージョンを確認できませんでした");
59 | return;
60 | }
61 | var m = new Regex("https://github.com/guest-nico/nicoNewStreamRecorderKakkoKari/releases/download/releases/(.+?).(zip|rar)").Match(r);
62 | if (!m.Success) {
63 | form.formAction(() =>
64 | lastVersionLabel.Text = "最新の利用可能なバージョンが見つかりませんでした");
65 | return;
66 | }
67 | var v = m.Groups[1].Value;
68 | if (v.IndexOf(util.versionStr.Substring(3)) > -1)
69 | form.formAction(() => lastVersionLabel.Text = "ニコ生録画登録ツール(仮は最新バージョンです");
70 | else {
71 | form.formAction(() => {
72 | lastVersionLabel.Text = v + "が利用可能です";
73 | lastVersionLabel.Links.Clear();
74 | lastVersionLabel.Links.Add(0, v.Length, m.Value);
75 | //lastVersionLabel.LinkArea = new LinkArea(0, v.Length);
76 | });
77 | }
78 | }
79 | void LastVersionLabelLinkClicked(object _sender, LinkLabelLinkClickedEventArgs e)
80 | {
81 | util.debugWriteLine("click");
82 | LinkLabel sender = (LinkLabel)_sender;
83 | if (e.Button == MouseButtons.Left) {
84 | if (sender.Links.Count > 0 && sender.Links[0].Length != 0) {
85 | string url = (string)sender.Links[0].LinkData;
86 | if (bool.Parse(form.config.get("IsdefaultBrowserPath"))) {
87 | System.Diagnostics.Process.Start(url);
88 | } else {
89 | var p = form.config.get("browserPath");
90 | System.Diagnostics.Process.Start(p, url);
91 | }
92 | }
93 | } else {
94 | // if (sender.Links.Count > 0 && sender.Links[0].Length != 0) {
95 | // labelUrl = (string)sender.Links[0].LinkData;
96 | // mainWindowRightClickMenu.Show(Cursor.Position);
97 | // }
98 | }
99 | }
100 | void DownloadPageLinkLabelLinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
101 | {
102 | var url = "https://guest-nico.github.io/pages/downloads.html";
103 | util.openUrlBrowser(url, form.config);
104 | }
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/argOptionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/05/07
5 | * Time: 16:17
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace rokugaTouroku.gui
14 | {
15 | ///
16 | /// Description of ArgOptionForm.
17 | ///
18 | public partial class ArgOptionForm : Form
19 | {
20 | public string ret;
21 |
22 | public ArgOptionForm(int fontSize)
23 | {
24 | //
25 | // The InitializeComponent() call is required for Windows Forms designer support.
26 | //
27 | InitializeComponent();
28 | //
29 | // TODO: Add constructor code after the InitializeComponent() call.
30 | //
31 | util.setFontSize(fontSize, this, false);
32 | setSampleLabel();
33 | }
34 |
35 | void fileNameTypeOkBtn_Click(object sender, EventArgs e)
36 | {
37 | Close();
38 | }
39 |
40 | void fileNameTypeText_Changed(object sender, EventArgs e)
41 | {
42 | setSampleLabel();
43 | }
44 | void setSampleLabel() {
45 | fileNameTypeLabel.Text =
46 | util.getArgTypeSample(fileNameTypeText.Text);
47 | }
48 |
49 | void CopyBtnClick(object sender, EventArgs e)
50 | {
51 | Clipboard.SetText(fileNameTypeText.Text);
52 | }
53 |
54 | void FileNameTypeDefaultBtnClick(object sender, EventArgs e)
55 | {
56 | fileNameTypeText.Text = "-i {i} -c copy {o}.mp4";
57 | }
58 |
59 | void FileNameTypeDateBtnClick(object sender, EventArgs e)
60 | {
61 | fileNameTypeText.Text = "{nourl}";
62 | }
63 |
64 | void GroupBox3Enter(object sender, EventArgs e)
65 | {
66 |
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/gui/fileNameOptionForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2018/05/07
5 | * Time: 16:17
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Drawing;
11 | using System.Windows.Forms;
12 |
13 | namespace rokugaTouroku
14 | {
15 | ///
16 | /// Description of fileNameOptionForm.
17 | ///
18 | public partial class fileNameOptionForm : Form
19 | {
20 | public string ret;
21 |
22 | public fileNameOptionForm(string filenameformat, int fontSize)
23 | {
24 | //
25 | // The InitializeComponent() call is required for Windows Forms designer support.
26 | //
27 | InitializeComponent();
28 |
29 | fileNameTypeText.Text = filenameformat;
30 | fileNameTypeLabel.Text =
31 | util.getFileNameTypeSample(filenameformat);
32 | //
33 | // TODO: Add constructor code after the InitializeComponent() call.
34 | //
35 | util.setFontSize(fontSize, this, false);
36 | }
37 |
38 | void fileNameTypeOkBtn_Click(object sender, EventArgs e)
39 | {
40 | if (fileNameTypeText.Text.IndexOf("{0}") < 0) {
41 | //util.showMessageBoxCenterForm(this, "{0}は必ず入れてください", "注意", MessageBoxButtons.OK, MessageBoxIcon.None);
42 | if (MessageBox.Show("{0}がないです。このまま登録しますか?", "注意", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
43 | return;
44 | }
45 | DialogResult = DialogResult.OK;
46 | ret = fileNameTypeText.Text;
47 | Close();
48 | }
49 | void fileNameTypeCancelBtn_Click(object sender, EventArgs e)
50 | {
51 | DialogResult = DialogResult.Cancel;
52 | Close();
53 | }
54 |
55 | void fileNameTypeText_Changed(object sender, EventArgs e)
56 | {
57 | fileNameTypeLabel.Text =
58 | util.getFileNameTypeSample(fileNameTypeText.Text);
59 | }
60 |
61 | void fileNameTypeDefaultBtn_Click(object sender, EventArgs e)
62 | {
63 | fileNameTypeText.Text =
64 | "{Y}_{M}_{D}_{h}_{m}_{0}_{1}_{2}_{3}_{4}";
65 | }
66 | void fileNameTypeNitijiBtn_Click(object sender, EventArgs e)
67 | {
68 | fileNameTypeText.Text =
69 | "{Y}年{M}月{D}日({W}){h}時{m}分{1}_{0}_";
70 | }
71 | void fileNameTypeSimpleBtn_Click(object sender, EventArgs e)
72 | {
73 | fileNameTypeText.Text =
74 | "{0}_";
75 | }
76 | void fileNameTypeTitleBtn_Click(object sender, EventArgs e)
77 | {
78 | fileNameTypeText.Text =
79 | "{1}_{0}_";
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/nicoNewStreamRecorderKakkoKari/rokugaTouroku/src/info/AccountInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Created by SharpDevelop.
3 | * User: zack
4 | * Date: 2021/09/30
5 | * Time: 3:16
6 | *
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers.
8 | */
9 | using System;
10 | using System.Collections.Generic;
11 | using System.IO;
12 | using System.Net;
13 | using System.Runtime.Serialization;
14 | using System.Text;
15 | using System.Xml.Linq;
16 | using System.Xml.Serialization;
17 | using Newtonsoft.Json;
18 | using SunokoLibrary.Application;
19 |
20 | namespace rokugaTouroku.info
21 | {
22 | ///
23 | /// Description of AccountInfo.
24 | ///
25 | public class AccountInfo
26 | {
27 | public bool isRecSetting = true;
28 | public CookieSourceInfo si;
29 | public string accountId;
30 | public string accountPass;
31 | public string userSession;
32 | public bool isBrowser = false;
33 | public bool isAccount = false;
34 | public bool isUserSession = false;
35 |
36 | public bool useSecondLogin = false;
37 | public string cookieFile;
38 |
39 | public AccountInfo(CookieSourceInfo si,
40 | string accountId, string accountPass,
41 | string userSession, bool isBrowser, bool isAccount,
42 | bool isUserSession, bool isSecondLogin,
43 | bool isRecSetting, string cookieFile)
44 | {
45 | this.si = si;
46 | this.accountId = accountId;
47 | this.accountPass = accountPass;
48 | this.userSession = userSession;
49 | this.isBrowser = isBrowser;
50 | this.isAccount = isAccount;
51 | this.isUserSession = isUserSession;
52 | this.useSecondLogin = isSecondLogin;
53 | this.isRecSetting = isRecSetting;
54 | this.cookieFile = cookieFile;
55 | }
56 | public string getArg() {
57 | try {
58 | if (isRecSetting) return null;
59 |
60 | XmlSerializer serializer = new XmlSerializer(typeof(AccountSetting));
61 | using (var ms = new MemoryStream()) {
62 | var _ai = new AccountSetting();
63 | _ai.IsCustomized = si != null ? si.IsCustomized : false;
64 | _ai.BrowserName = si != null ? si.BrowserName : "";
65 | _ai.ProfileName = si != null ? si.BrowserName : "";
66 | _ai.CookiePath = si != null && si.CookiePath != null ? si.CookiePath.Replace('\\', '/') : "";
67 | _ai.EngineId = si != null ? si.EngineId : "";
68 | _ai.mail = accountId == null ? "" : accountId;
69 | _ai.pass = accountPass == null ? "" : accountPass;
70 | _ai.userSession = userSession == null ? "" : userSession;
71 | _ai.isBrowser = isBrowser;
72 | _ai.isAccount = isAccount;
73 | _ai.isUserSession = isUserSession;
74 |
75 | var ns = new XmlSerializerNamespaces();
76 | ns.Add(string.Empty, string.Empty);
77 | serializer.Serialize(ms, _ai, ns);
78 | var b = Encoding.UTF8.GetString(ms.ToArray());
79 |
80 | var a = b.Replace("\n", "").Replace("\r", "");
81 | a = util.getRegGroup(a, "(
14 | /// Description of TimeShiftConfig.
15 | ///
16 | public class TimeShiftConfig
17 | {
18 | public int startTimeMode = 0;
19 | public int endTimeMode = 0;
20 |
21 | //0-start time 1-continue
22 | private int startType = 0;
23 | public int h = 0;
24 | public int m = 0;
25 | public int s = 0;
26 | public int endH = 0;
27 | public int endM = 0;
28 | public int endS = 0;
29 |
30 | public bool isContinueConcat = false;
31 | public int timeSeconds = 0;
32 | public int timeType = 0; //0-record from 1-recorded until
33 |
34 | public int endTimeSeconds = 0;
35 | public bool isDeletePosTime = false;
36 | public bool isOutputUrlList;
37 | public string openListCommand;
38 | public bool isM3u8List;
39 | public double m3u8UpdateSeconds;
40 | public bool isOpenUrlList;
41 | public bool isVposStartTime;
42 |
43 | public string startTimeStr;
44 | public bool isAfterStartTimeComment;
45 | public bool isBeforeEndTimeComment;
46 | public bool isOpenTimeBaseStartArg;
47 | public bool isOpenTimeBaseEndArg;
48 |
49 | public TimeShiftConfig(int startType,
50 | int h, int m, int s, bool isContinueConcat,
51 | bool isVposStartTime, int startTimeMode, int endTimeMode,
52 | bool isAfterStartTimeComment, bool isOpenTimeBaseStart,
53 | bool isOpenTimeBaseEnd, bool isBeforeEndTimeComment,
54 | bool isDeletePosTime)
55 | {
56 | this.startType = startType;
57 | this.h = h;
58 | this.m = m;
59 | this.s = s;
60 | this.isContinueConcat = isContinueConcat;
61 | this.isVposStartTime = isVposStartTime;
62 | this.startTimeMode = startTimeMode;
63 | this.endTimeMode = endTimeMode;
64 |
65 | timeSeconds = h * 3600 + m * 60 + s;
66 | timeType = (startType == 0) ? 0 : 1;
67 | startTimeStr = (startType == 0) ? (timeSeconds + "s") :
68 | ((isContinueConcat) ? "continue-concat" : "continue");
69 | this.isAfterStartTimeComment = isAfterStartTimeComment;
70 | this.isBeforeEndTimeComment = isBeforeEndTimeComment;
71 | this.isOpenTimeBaseStartArg = isOpenTimeBaseStart;
72 | this.isOpenTimeBaseEndArg = isOpenTimeBaseEnd;
73 | this.isDeletePosTime = isDeletePosTime;
74 | }
75 | public TimeShiftConfig(int startType,
76 | int h, int m, int s, int endH, int endM, int endS,
77 | bool isContinueConcat, bool isOutputUrlList,
78 | string openListCommand, bool isM3u8List,
79 | double m3u8UpdateSeconds, bool isOpenUrlList,
80 | bool isVposStartTime, int startTimeMode, int endTimeMode,
81 | bool isAfterStartTimeComment, bool isOpenTimeBaseStart,
82 | bool isOpenTimeBaseEnd, bool isBeforeEndTimeComment,
83 | bool isDeletePosTime)
84 | {
85 | this.startType = startType;
86 | this.h = h;
87 | this.m = m;
88 | this.s = s;
89 | this.endH = endH;
90 | this.endM = endM;
91 | this.endS = endS;
92 | this.isContinueConcat = isContinueConcat;
93 | this.isOutputUrlList = isOutputUrlList;
94 | this.openListCommand = openListCommand;
95 | this.isM3u8List = isM3u8List;
96 | this.m3u8UpdateSeconds = m3u8UpdateSeconds;
97 | this.isOpenUrlList = isOpenUrlList;
98 | this.isVposStartTime = isVposStartTime;
99 | this.startTimeMode = startTimeMode;
100 | this.endTimeMode = endTimeMode;
101 |
102 | timeSeconds = (startTimeMode == 0) ? 0 : (h * 3600 + m * 60 + s);
103 | timeType = (startType == 0) ? 0 : 1;
104 | endTimeSeconds = (endTimeMode == 0) ? 0 : (endH * 3600 + endM * 60 + endS);
105 |
106 | startTimeStr = (startType == 0) ? (timeSeconds + "s") :
107 | ((isContinueConcat) ? "continue-concat" : "continue");
108 | this.isAfterStartTimeComment = isAfterStartTimeComment;
109 | this.isOpenTimeBaseStartArg = isOpenTimeBaseStart;
110 | this.isOpenTimeBaseEndArg = isOpenTimeBaseEnd;
111 | this.isBeforeEndTimeComment = isBeforeEndTimeComment;
112 | this.isDeletePosTime = isDeletePosTime;
113 | }
114 | public TimeShiftConfig() : this(0, 0, 0, 0, 0, 0, 0,
115 | false, false, "notepad {i}", false, 5, false, false, 0, 0, false, false, false, false, true) {}
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/siyou.md:
--------------------------------------------------------------------------------
1 |
2 | ## 製作中に見つけたニコ生新配信仕様
3 |
4 | 誰かの役に立てば幸いです。
5 | 独自の経験のため、間違っている部分もあるかもしれません。
6 |
7 | ### 視聴ページ
8 | - たまに500 internal server errorが返ります。
9 | - 放送終了直後は視聴ページでも放送後の表示のページでもない、非ログインのときに表示されるページ?のようなところに飛ばされることがあります。まだ放送終了後ページが用意されていないのかもしれません。
10 |
11 | ### websocket
12 | 接続時
13 | - まず基本メッセージは{"type":"watch","body":{"command":"getpermit","requirement":{"broadcastId":"6121945301627","route":"","stream":{"protocol":"hls","requireNewStream":true,"priorStreamQuality":"normal","isLowLatency":true},"room":{"isCommentable":true,"protocol":"webSocket"}}}}
14 | - このうちのrequireNewStreamは名前の通り新しい映像ストリームを要請する意味だと思われます。ここにfalseを指定することで既存の映像ストリームを切断することなく既存の映像ストリームを取得することができます。ブラウザでは最初にプレイヤーをロードしたときにはtrueで接続され、プレイヤー右下の更新ボタンを押すとfalseでメッセージが送られるようです。これを利用してツール側でfalseで接続すれば、ある程度はブラウザ視聴に干渉せずに接続することができますが、有料会員限定放送の非会員でも視聴できる部分?などは例外としてfalseで接続しても既存の接続を切断して新規ストリームが返ってくるようです。完全な確認は取れていませんが、どうやらサーバーから送られてきたcurrentstreamのmediaServerAuthがnullでない場合はfalseが効かないような気がします。既存の有効なストリームが存在しない状態でfalseで接続disconnectされて「NO_PERMISSION」が返ってきます。本ツールでは一旦falseで送ってNO_PERMISSIONが返ってきたときだけtrueで接続し直すという手法を取っていますが、映像クオリティ選択機能との兼ね合いで機能しないことも多いです。
15 | - priorStreamQualityは新規に取得したい映像ストリームのクオリティを指定します。ほとんどの放送では自動はabr、3Mbpsはsuper_high、2Mbpsはhigh、1Mbpsはnormal、384kbpsはlow、192kbpsはsuper_lowに対応しており、一部の放送の高画質はhigh、低画質はnormalに対応しています。また、有料放送などでは高画質=highが会員映像、normalが非会員映像に分けられていることもありますがそうでないこともあります。この項目の設定はrequireNewStreamにtrueを指定した場合にのみ有効になります。多くの放送ではsuper_highが存在しない放送にsuper_highを指定したり「abc」などの適当な文字列を指定した場合は前回有効な接続をしたときの設定でストリームが返ってくるようですが、高画質と低画質しか画質選択が存在しない放送でrequireNewStreamがfalseだったとしても、highとnormal以外を指定すると有効なストリームの取得ができなかったことがありました。いきなり目的の画質を指定するとNO_PERMISSIONになる可能性があるので、一旦何も指定せずに投げて、返ってきたcurrentStreamのqualityTypesから目的の画質を指定して送り直すのも手かもしれません。
16 |
17 | サーバーからのcurrentStream
18 | - mediaServerTypeはほとんどがdmcですが、ウェザーニューズなど"limelight"でした。(2018/7/30)
19 |
20 | statistics
21 | - 極希に「{"type":"watch","body":{"command":"statistics","params":["2",null,"0","0"]}}」のようにnullが入っていることがあります。
22 |
23 | disconnect
24 | - disconnectを受け取った後にgetpermitで再接続する際は、requireNewStreamをfalseにしていると前回の切断理由が返ってきて再びdisconnectになってしまうようです。disconnectされた後は一度requireNewStreamをtrueにする必要があるようです。
25 | - NO_PERMISSION: 既存の有効なストリームがない状態でrequireNewStreamをfalseに指定したりなど、getpermitが成功しなかったときに送られてくるようです。
26 | - TAKEOVER: いわゆる追い出しです。rtmp配信と違い、新配信では追い出し時にwebsocketの接続自体が切られてしまいます。
27 | - SERVICE_TEMPORARILY_UNAVAILABLE: ある放送へのアクセス過多?大量のスレッドで集中的にアクセスすると起こりました。放送の最初でも起こりやすい?ただ、それほど人がいない放送の予約枠の最初でも起こっていました。ユーザー側の環境により放送の最初に頻発することもあるようです。ニコ生の「視聴ができない不具合」が発生していたときにもこのエラーが出ていました。
28 | - END_PROGRAM: 番組終了
29 | - TOO_MANY_CONNECTIONS: あるアカウントあたりのある放送への接続が多すぎる。10ぐらい?一つのaudience_tokenごとではなく、アカウントごとの気がします。つまり、一つのアカウントを使って大量の別放送を録画する分には引っかからない、かも。また、逆を言えば一つのアカウントから制限数以下の複数のストリームの取得が可能なので、使い方はありそうです。ただし、一つのアカウントに対して配信されるストリームは一つの映像クオリティのみのようです。
30 | - INTERNAL_SERVERERROR: こちらもあまりよく理解できていませんが、稀に送られてきます。
31 |
--------------------------------------------------------------------------------