├── .vs └── webtoons_download │ └── v16 │ ├── Server │ └── sqlite3 │ │ ├── db.lock │ │ └── storage.ide │ └── .suo ├── webtoons_download ├── obj │ ├── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── webtoons_download.csproj.CoreCompileInputs.cache │ │ ├── Webtoons Downloader by RieqyNS13.exe │ │ ├── Webtoons Downloader by RieqyNS13.pdb │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── webtoons_download.csprojAssemblyReference.cache │ │ ├── webtoons_download.csprojResolveAssemblyReference.cache │ │ └── webtoons_download.csproj.FileListAbsolute.txt │ └── Release │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── webtoons_download.csproj.CoreCompileInputs.cache │ │ ├── Webtoons Downloader by RieqyNS13.exe │ │ ├── Webtoons Downloader by RieqyNS13.pdb │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── webtoons_download.csprojResolveAssemblyReference.cache │ │ └── webtoons_download.csproj.FileListAbsolute.txt ├── pc_favicon.ico ├── bin │ ├── Debug │ │ ├── Webtoons Downloader by RieqyNS13.exe │ │ ├── Webtoons Downloader by RieqyNS13.pdb │ │ ├── Webtoons Downloader by RieqyNS13.zip │ │ ├── Webtoons Downloader by RieqyNS13.vshost.exe │ │ ├── webtoons_download.vshost.exe.config │ │ ├── Webtoons Downloader by RieqyNS13.exe.config │ │ ├── Webtoons Downloader by RieqyNS13.vshost.exe.config │ │ ├── webtoons_download.vshost.exe.manifest │ │ └── Webtoons Downloader by RieqyNS13.vshost.exe.manifest │ └── Release │ │ ├── Webtoons Downloader by RieqyNS13.exe │ │ ├── Webtoons Downloader by RieqyNS13.pdb │ │ ├── Webtoons Downloader by RieqyNS13.zip │ │ └── Webtoons Downloader by RieqyNS13.exe.config ├── App.config ├── Class1.cs ├── Properties │ └── AssemblyInfo.cs ├── webtoons_download.csproj └── Program.cs └── webtoons_download.sln /.vs/webtoons_download/v16/Server/sqlite3/db.lock: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/webtoons_download.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 9232eeb23cbba13030b1b99fc8e7932692b9ee32 2 | -------------------------------------------------------------------------------- /webtoons_download/obj/Release/webtoons_download.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 4e953b9d9e5521361a1ae96340d5acff0cc98104 2 | -------------------------------------------------------------------------------- /.vs/webtoons_download/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/.vs/webtoons_download/v16/.suo -------------------------------------------------------------------------------- /webtoons_download/pc_favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/pc_favicon.ico -------------------------------------------------------------------------------- /.vs/webtoons_download/v16/Server/sqlite3/storage.ide: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/.vs/webtoons_download/v16/Server/sqlite3/storage.ide -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.exe -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.pdb -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.zip -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/Webtoons Downloader by RieqyNS13.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Debug/Webtoons Downloader by RieqyNS13.exe -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/Webtoons Downloader by RieqyNS13.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Debug/Webtoons Downloader by RieqyNS13.pdb -------------------------------------------------------------------------------- /webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.exe -------------------------------------------------------------------------------- /webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.pdb -------------------------------------------------------------------------------- /webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.zip -------------------------------------------------------------------------------- /webtoons_download/obj/Release/Webtoons Downloader by RieqyNS13.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Release/Webtoons Downloader by RieqyNS13.exe -------------------------------------------------------------------------------- /webtoons_download/obj/Release/Webtoons Downloader by RieqyNS13.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Release/Webtoons Downloader by RieqyNS13.pdb -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.vshost.exe -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/webtoons_download.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Debug/webtoons_download.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /webtoons_download/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /webtoons_download/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/webtoons_download.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Debug/webtoons_download.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /webtoons_download/obj/Release/webtoons_download.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RieqyNS13/webtoons-downloader/HEAD/webtoons_download/obj/Release/webtoons_download.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/webtoons_download.vshost.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /webtoons_download/bin/Release/Webtoons Downloader by RieqyNS13.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.vshost.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/webtoons_download.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /webtoons_download/bin/Debug/Webtoons Downloader by RieqyNS13.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /webtoons_download/obj/Release/webtoons_download.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | D:\gay\C#\webtoons_download\webtoons_download\bin\Release\Webtoons Downloader by RieqyNS13.exe.config 2 | D:\gay\C#\webtoons_download\webtoons_download\bin\Release\Webtoons Downloader by RieqyNS13.exe 3 | D:\gay\C#\webtoons_download\webtoons_download\bin\Release\Webtoons Downloader by RieqyNS13.pdb 4 | D:\gay\C#\webtoons_download\webtoons_download\obj\Release\webtoons_download.csprojResolveAssemblyReference.cache 5 | D:\gay\C#\webtoons_download\webtoons_download\obj\Release\webtoons_download.csproj.CoreCompileInputs.cache 6 | D:\gay\C#\webtoons_download\webtoons_download\obj\Release\Webtoons Downloader by RieqyNS13.exe 7 | D:\gay\C#\webtoons_download\webtoons_download\obj\Release\Webtoons Downloader by RieqyNS13.pdb 8 | -------------------------------------------------------------------------------- /webtoons_download.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "webtoons_download", "webtoons_download\webtoons_download.csproj", "{275F71ED-6FB9-45DC-B82E-E402558E865F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {275F71ED-6FB9-45DC-B82E-E402558E865F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {275F71ED-6FB9-45DC-B82E-E402558E865F}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {275F71ED-6FB9-45DC-B82E-E402558E865F}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {275F71ED-6FB9-45DC-B82E-E402558E865F}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /webtoons_download/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace webtoons_download 8 | { 9 | class Class1 10 | { 11 | public class Stat 12 | { 13 | public string type { get; set; } 14 | public string url { get; set; } 15 | } 16 | 17 | public class Url 18 | { 19 | public string type { get; set; } 20 | public string url { get; set; } 21 | } 22 | 23 | public class AudioPlayUrlInfo 24 | { 25 | public string encodingOptionId { get; set; } 26 | public List urls { get; set; } 27 | } 28 | 29 | public class RootObject 30 | { 31 | public string code { get; set; } 32 | public string message { get; set; } 33 | public string audioId { get; set; } 34 | public double playTime { get; set; } 35 | public int playCount { get; set; } 36 | public string waveform { get; set; } 37 | public int serviceId { get; set; } 38 | public string cdn { get; set; } 39 | public string countryCode { get; set; } 40 | public List stats { get; set; } 41 | public List audioPlayUrlInfos { get; set; } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /webtoons_download/obj/Debug/webtoons_download.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | F:\gay\Backup\C#\webtoons_download\webtoons_download\obj\Debug\webtoons_download.csprojResolveAssemblyReference.cache 2 | F:\gay\Backup\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.exe.config 3 | F:\gay\Backup\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.exe 4 | F:\gay\Backup\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.pdb 5 | F:\gay\Backup\C#\webtoons_download\webtoons_download\obj\Debug\Webtoons Downloader by RieqyNS13.exe 6 | F:\gay\Backup\C#\webtoons_download\webtoons_download\obj\Debug\Webtoons Downloader by RieqyNS13.pdb 7 | F:\gay\Backup\C#\webtoons_download\webtoons_download\obj\Debug\webtoons_download.csproj.CoreCompileInputs.cache 8 | D:\gay\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.exe.config 9 | D:\gay\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.exe 10 | D:\gay\C#\webtoons_download\webtoons_download\bin\Debug\Webtoons Downloader by RieqyNS13.pdb 11 | D:\gay\C#\webtoons_download\webtoons_download\obj\Debug\Webtoons Downloader by RieqyNS13.exe 12 | D:\gay\C#\webtoons_download\webtoons_download\obj\Debug\Webtoons Downloader by RieqyNS13.pdb 13 | D:\gay\C#\webtoons_download\webtoons_download\obj\Debug\webtoons_download.csprojAssemblyReference.cache 14 | -------------------------------------------------------------------------------- /webtoons_download/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Webtoons Downloader by RieqyNS13")] 9 | [assembly: AssemblyDescription("Webtoons Downloader by RieqyNS13")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("webtoons_download")] 13 | [assembly: AssemblyCopyright("Copyright © RieqyNS13 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("275f71ed-6fb9-45dc-b82e-e402558e865f")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /webtoons_download/webtoons_download.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {275F71ED-6FB9-45DC-B82E-E402558E865F} 8 | Exe 9 | Properties 10 | webtoons_download 11 | Webtoons Downloader by RieqyNS13 12 | v4.5.2 13 | 512 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | pc_favicon.ico 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 69 | -------------------------------------------------------------------------------- /webtoons_download/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Net; 6 | using System.IO; 7 | using System.Text.RegularExpressions; 8 | using System.Threading; 9 | using System.Threading.Tasks; 10 | using System.Web.Script.Serialization; 11 | namespace webtoons_download 12 | { 13 | class Program 14 | { 15 | static string contentType; 16 | static CookieContainer cookie; 17 | static Stream get(string url, ref string error,Dictionary header=null) 18 | { 19 | HttpWebRequest req; 20 | Stream stream; 21 | HttpWebResponse resp = null; 22 | try 23 | { 24 | req = HttpWebRequest.Create(url) as HttpWebRequest; 25 | req.Accept = "*/*"; 26 | req.AllowAutoRedirect = true; 27 | req.UserAgent = "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"; 28 | if(header!= null) 29 | { 30 | foreach(KeyValuePair pair in header) 31 | { 32 | if (pair.Key.ToLower() == "referer") req.Referer = pair.Value; 33 | else req.Headers.Add(pair.Key, pair.Value); 34 | } 35 | } 36 | req.CookieContainer = cookie; 37 | resp = req.GetResponse() as HttpWebResponse; 38 | responCode = resp.StatusCode; 39 | contentType = resp.ContentType; 40 | stream = resp.GetResponseStream(); 41 | return stream; 42 | } 43 | catch (WebException Wex) 44 | { 45 | Console.WriteLine(Wex.ToString()); 46 | try 47 | { 48 | resp = Wex.Response as HttpWebResponse; 49 | responCode = resp.StatusCode; 50 | contentType = null; 51 | return resp.GetResponseStream(); 52 | } 53 | catch (Exception ex1) 54 | { 55 | responCode = 0; 56 | contentType = null; 57 | return null; 58 | } 59 | } 60 | catch (Exception ex) 61 | { 62 | 63 | Console.WriteLine(ex.ToString()); 64 | error = ex.ToString(); 65 | responCode = 0; 66 | contentType = null; 67 | return null; 68 | } 69 | } 70 | static HttpStatusCode responCode; 71 | static string getTextFromSteam(Stream stream) 72 | { 73 | try 74 | { 75 | StreamReader reader = new StreamReader(stream); 76 | string asu = reader.ReadToEnd(); 77 | reader.Close(); 78 | return asu; 79 | } 80 | catch 81 | { 82 | return null; 83 | } 84 | } 85 | class Gay 86 | { 87 | public Gay() 88 | { 89 | listUrl = new List(); 90 | listJudul = new List(); 91 | } 92 | public List listUrl { get; set; } 93 | public List listJudul { get; set; } 94 | } 95 | static Gay getListChapter(string url) 96 | { 97 | Gay gay = new Gay(); 98 | bool next = true; 99 | Console.ForegroundColor = ConsoleColor.Cyan; 100 | Console.WriteLine("[+] Proses Mengumpulkan list chapter : "); 101 | string error = null; 102 | string page = "1"; 103 | string curl = getTextFromSteam(get(url + "&page=" + page, ref error)); 104 | while(next) 105 | { 106 | Match getpage = Regex.Match(curl, "(.*?)", RegexOptions.IgnoreCase | RegexOptions.Singleline); 107 | page = getpage.Groups[1].Value; 108 | Console.WriteLine("> " + url); 109 | //Console.ReadKey(); 110 | Match x = Regex.Match(curl, "
    \\s*(.*?)\\s*
", RegexOptions.IgnoreCase | RegexOptions.Singleline); 111 | string asu = null; 112 | if (x.Groups.Count == 2) 113 | { 114 | asu = x.Groups[1].Value; 115 | 116 | MatchCollection matches= Regex.Matches(asu, "
  • \\s+(.*?)", RegexOptions.IgnoreCase); 119 | if (matches.Count == matches2.Count*3) 120 | { 121 | for (int i = 0; i < matches2.Count; i++) 122 | jancuk[i] = matches[i * 3].Groups[1].Value; 123 | } 124 | else 125 | { 126 | for (int i = 0; i < matches.Count; i++) 127 | jancuk[i] = matches[i].Groups[1].Value; 128 | } 129 | for (int j=0;j < matches2.Count; j++){ 130 | gay.listUrl.Add(jancuk[j]); 131 | gay.listJudul.Add(matches2[j].Groups[1].Value); 132 | } 133 | 134 | } 135 | Match getnextpage = Regex.Match(curl, ".+?\\s+(.*?)", RegexOptions.IgnoreCase); 163 | // Match m = r.Match(data); 164 | // Match m2 = r.Match(data2); 165 | // if (string.Compare(m.Groups[1].Value, m2.Groups[1].Value) != 0) return true; 166 | // else return false; 167 | // } 168 | // catch 169 | // { 170 | // return false; 171 | // } 172 | //} 173 | static void Main(string[] args) 174 | { 175 | ServicePointManager.Expect100Continue = true; 176 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 177 | ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 178 | 179 | Console.Title = "Webtoons Downloader by RieqyNS13 (fb.me/rieqyns13) "; 180 | string url; 181 | Console.ForegroundColor = ConsoleColor.Green; 182 | 183 | Console.Write("[+] Masukkan url (contoh: http://www.webtoons.com/id/fantasy/noblesse/list?title_no=442 ) = "); 184 | url = Console.ReadLine().Trim(); 185 | url = Regex.Replace(url, "&?page=\\d*", string.Empty); 186 | string error = null; 187 | cookie = new CookieContainer(); 188 | string curl = getTextFromSteam(get(url, ref error)); 189 | if (curl == null) 190 | { 191 | if (responCode == HttpStatusCode.NotFound) Console.WriteLine("[+] Not Found anjing"); 192 | else Console.WriteLine("[+] Koneksi cacat njing "+responCode.ToString()); 193 | Console.Read(); 194 | return; 195 | } 196 | Gay bacod = getListChapter(url); 197 | Console.WriteLine("[+] Jumlah chapter : " + bacod.listUrl.Count); 198 | Console.ForegroundColor = ConsoleColor.Cyan; 199 | if (bacod.listUrl.Count == 0) 200 | { 201 | Console.WriteLine("[+] Kosong cuk"); 202 | Console.Read(); 203 | return; 204 | } 205 | else 206 | { 207 | Console.WriteLine(); 208 | 209 | for (int i = 0; i < bacod.listUrl.Count; i++) 210 | { 211 | Console.WriteLine("[" + i + "] " + bacod.listJudul[i]); 212 | 213 | } 214 | Console.WriteLine(); 215 | } 216 | Console.ForegroundColor = ConsoleColor.Green; 217 | string range; 218 | int begin = 0, end = 0; 219 | do 220 | { 221 | Console.Write("[+] Range chapter yang didownload (contoh: 0-11) = "); 222 | range = Console.ReadLine(); 223 | } while (!cekInputRange(bacod.listUrl, range, ref begin, ref end)); 224 | 225 | do 226 | { 227 | Console.Write("[+] Tulis folder untuk menyimpan manga (contoh: f:\\manga) = "); 228 | foldersimpan = Console.ReadLine().Trim(); 229 | } while (!Directory.Exists(foldersimpan.Trim())); 230 | string timpa; 231 | do 232 | { 233 | Console.Write("[+] Timpa file yang sudah ada ? [y/n] = "); 234 | timpa = Console.ReadLine().Trim().ToLower(); 235 | } while (timpa != "y" && timpa != "n"); 236 | proses(bacod.listUrl, bacod.listJudul, begin, end, timpa == "y" ? true : false); 237 | Console.Read(); 238 | 239 | } 240 | static string foldersimpan; 241 | static void downloadGambar(string url, int nomer, string pathfolder,string url_referer) 242 | { 243 | try 244 | { 245 | int i = 0; bool sukses = false; string error = null; 246 | while (!sukses && i < 10) 247 | { 248 | string file; 249 | Dictionary header = new Dictionary(); 250 | header.Add("Referer", url_referer); 251 | Stream streamImg = get(url, ref error, header); 252 | if (responCode == HttpStatusCode.OK) 253 | { 254 | switch (contentType) 255 | { 256 | case "image/jpeg": 257 | file = pathfolder.Trim() + "/" + nomer + ".jpg"; 258 | htmlCok += "
    "; 259 | break; 260 | default: 261 | file = pathfolder + "/" + nomer + ".png"; 262 | htmlCok += "
    "; 263 | break; 264 | } 265 | try 266 | { 267 | using (var fs = File.Create(file)) 268 | { 269 | streamImg.CopyTo(fs); 270 | sukses = true; 271 | Console.WriteLine("Completed"); 272 | } 273 | }catch(Exception asu) 274 | { 275 | Console.ForegroundColor = ConsoleColor.Red; 276 | Console.Write(file); 277 | Console.WriteLine(asu.ToString()); 278 | Console.ForegroundColor = ConsoleColor.Green; 279 | } 280 | } 281 | else if (streamImg != null) 282 | { 283 | Console.WriteLine("Invalid"); 284 | } 285 | else 286 | { 287 | Console.ForegroundColor = ConsoleColor.Red; 288 | Console.WriteLine("Gak konek internet cuk"); 289 | Console.ForegroundColor = ConsoleColor.Green; 290 | Console.Read(); 291 | } 292 | i++; 293 | } 294 | } 295 | catch (Exception e) 296 | { 297 | Console.WriteLine(e.ToString()); 298 | } 299 | 300 | } 301 | static string removeIllegal(string asu) 302 | { 303 | string[] cok = new string[] { "<", ">", ":", "\"", "/", "\\", "|", "?", "*" }; 304 | foreach (string q in cok) 305 | { 306 | asu = Regex.Replace(asu, Regex.Escape(q), string.Empty); 307 | } 308 | return asu; 309 | } 310 | static string htmlCok; 311 | static Stream getAudio(string curl) 312 | { 313 | if (curl.Contains("naverAudioPlayer")) 314 | { 315 | Match a = Regex.Match(curl, "trackInfos\\.push\\(\\{\\s*url :\\s*'(.*?)',", RegexOptions.Singleline); 316 | if (a.Groups.Count == 2) 317 | { 318 | Console.Write("[+] Mendownload m4a audio: "); 319 | string urljson = a.Groups[1].Value; 320 | string error1 = null; 321 | string getjson = getTextFromSteam(get(urljson, ref error1)); 322 | if (error1 != null) 323 | { 324 | Console.ForegroundColor = ConsoleColor.Red; 325 | Console.WriteLine("Gagal mendapatkan file audio -> " + error1); 326 | Console.ForegroundColor = ConsoleColor.Green; 327 | return null; 328 | } 329 | else 330 | { 331 | JavaScriptSerializer js = new JavaScriptSerializer(); 332 | Class1.RootObject mbuh = js.Deserialize(getjson); 333 | string urlaudio = mbuh.audioPlayUrlInfos[1].urls[3].url; 334 | error1 = null; 335 | 336 | Stream getaudio = get(urlaudio, ref error1); 337 | if (error1 != null) 338 | { 339 | Console.ForegroundColor = ConsoleColor.Red; 340 | Console.WriteLine("Gagal mendapatkan file audio -> " + error1); 341 | Console.ForegroundColor = ConsoleColor.Green; 342 | return null; 343 | } 344 | else 345 | { 346 | Console.WriteLine("Sukses"); 347 | return getaudio; 348 | } 349 | } 350 | } 351 | else 352 | { 353 | Console.ForegroundColor = ConsoleColor.Red; 354 | Console.WriteLine("[-] Gagal mendapatkan file audio"); 355 | Console.ForegroundColor = ConsoleColor.Green; 356 | return null; 357 | } 358 | } 359 | else return null; 360 | } 361 | static void proses(List list, List text, int begin, int end, bool timpa) 362 | { 363 | try 364 | { 365 | for (int i = begin; i <= end; i++) 366 | { 367 | string error = null; 368 | Console.WriteLine("[" + i + "] " + text[i]); 369 | string curl = null; 370 | int c = 0; 371 | do 372 | { 373 | curl= getTextFromSteam(get(list[i], ref error)); 374 | c++; 375 | } while (string.IsNullOrEmpty(curl) && c <= 5); 376 | 377 | Match x = Regex.Match(curl, "id=\"_imageList\".*?\\s*(.*?)\\s*", RegexOptions.IgnoreCase | RegexOptions.Singleline); 378 | if (x.Groups.Count < 2) continue; 379 | Regex r = new Regex("data-url=\"(.+?)\"", RegexOptions.IgnoreCase); 380 | MatchCollection matches = r.Matches(x.Groups[1].Value); 381 | int j = 0; 382 | string dir = removeIllegal(text[i]).Trim(); 383 | if (!Directory.Exists(foldersimpan + "/" + dir)) Directory.CreateDirectory(foldersimpan + "/" + dir); 384 | htmlCok = "" + dir + "
    "; 385 | string pathfolder = foldersimpan + "/" + dir; 386 | foreach (Match m in matches) 387 | { 388 | 389 | string url = m.Groups[1].Value; 390 | Console.Write("[+] " + url + " -> "); 391 | if ((File.Exists(pathfolder + "/" + j + ".jpg") || File.Exists(pathfolder + "/" + j + ".png")) && !timpa) 392 | { 393 | string z = "jpg"; ; 394 | if (File.Exists(pathfolder + "/" + j + ".jpg")) z = "jpg"; 395 | else if (File.Exists(pathfolder + "/" + j + ".png")) z = "png"; 396 | htmlCok += "
    "; 397 | Console.WriteLine(" Sudah ada"); 398 | j++; 399 | continue; 400 | } 401 | else 402 | { 403 | downloadGambar(url, j, pathfolder, list[i]); 404 | j++; 405 | } 406 | 407 | } 408 | if (File.Exists(pathfolder + "/" + dir + ".m4a") && !timpa) 409 | { 410 | htmlCok += ""; 411 | Console.WriteLine("[+] File " + dir + ".m4a sudah ada"); 412 | } 413 | else 414 | { 415 | try 416 | { 417 | Stream audio = getAudio(curl); 418 | if (audio != null) 419 | { 420 | using (var fs = File.Create(pathfolder + "/" + dir + ".m4a")) 421 | { 422 | audio.CopyTo(fs); 423 | } 424 | htmlCok += ""; 425 | } 426 | }catch(Exception asu) 427 | { 428 | Console.ForegroundColor = ConsoleColor.Red; 429 | Console.WriteLine(asu.ToString()); 430 | Console.ForegroundColor = ConsoleColor.Green; 431 | } 432 | 433 | } 434 | htmlCok += "
    "; 435 | try 436 | { 437 | File.WriteAllText(pathfolder + "/" + dir + ".html", htmlCok); 438 | }catch(Exception asu) 439 | { 440 | Console.WriteLine(asu.ToString()); 441 | } 442 | 443 | } 444 | } 445 | catch (Exception e) 446 | { 447 | Console.WriteLine(e.ToString()); 448 | } 449 | finally 450 | { 451 | Console.WriteLine("\n[+] Proses completed"); 452 | } 453 | } 454 | static bool cekInputRange(List list, string range, ref int begin, ref int end) 455 | { 456 | Regex r = new Regex("^(\\d+)\\-(\\d+)$"); 457 | Match m = r.Match(range); 458 | int x = 0, y = 0; 459 | if (m.Success) 460 | { 461 | x = Convert.ToInt16(m.Groups[1].Value); 462 | y = Convert.ToInt16(m.Groups[2].Value); 463 | if (x > y) 464 | { 465 | Console.WriteLine("Angka pertama harus lebih kecil atau sama dengan angka terakhir"); 466 | return false; 467 | } 468 | else if (x < 0 || y > list.Count - 1) 469 | { 470 | Console.WriteLine("Range harus diantara 0 sampai Range maksimal"); 471 | return false; 472 | } 473 | } 474 | else 475 | { 476 | Console.WriteLine("Format salah njing"); 477 | return false; 478 | } 479 | begin = x; 480 | end = y; 481 | return true; 482 | } 483 | 484 | } 485 | } 486 | --------------------------------------------------------------------------------