Skip to content

Commit

Permalink
v3.0.0.44 - Fix e621 not longer working due to site changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Anonymous authored and Anonymous committed Nov 24, 2024
1 parent 88ddef5 commit 561de43
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 61 deletions.
1 change: 0 additions & 1 deletion e621 ReBot v3/Modules/CefSharp/Module_CefSharp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
using e621_ReBot_v3.CustomControls;
using e621_ReBot_v3.Modules.Downloader;
using e621_ReBot_v3.Modules.Grabber;
using HtmlAgilityPack;

namespace e621_ReBot_v3.Modules
{
Expand Down
93 changes: 44 additions & 49 deletions e621 ReBot v3/Modules/Downloader/Module_DLe621.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,28 +55,23 @@ internal static void GrabMediaLinks(string WebAddress)
SpecialSaveFolder = Module_Downloader.SelectFolderPopup(SpecialSaveFolder);
if (WebAddress.Contains("/posts?tags="))
{
if (string.IsNullOrEmpty(AppSettings.APIKey) || HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@class='paginator']/menu").ChildNodes.Count <= 3)
//If there is API key or page navigation has more than 3 buttons (<, 1, >) then grab all
if (!string.IsNullOrEmpty(AppSettings.APIKey) || HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@class='paginator']/menu").ChildNodes.Count > 3)
{
goto GrabPageOnly_Tags;
}

MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download all images with current tags?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.Yes)
{
string TagQuery = WebAddress;
TagQuery = TagQuery.Substring(TagQuery.IndexOf("tags=") + 5);
MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download all images with current tags?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.Yes)
{
string TagQuery = WebAddress;
TagQuery = TagQuery.Substring(TagQuery.IndexOf("tags=") + 5);

Grab_MediaWithTags(TagQuery, SpecialSaveFolder);
return;
}
else
{
goto GrabPageOnly_Tags;
Grab_MediaWithTags(TagQuery, SpecialSaveFolder);
return;
}
}
}

GrabPageOnly_Tags:
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts-container']/article");
//If no API key or page navigation has 3 buttons (<, 1, >) then just grab this (single) page
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts']/section[@class='posts-container']/article");
if (NodeSelector != null)
{
foreach (HtmlNode Post in NodeSelector)
Expand Down Expand Up @@ -107,22 +102,22 @@ internal static void GrabMediaLinks(string WebAddress)
case "pools":
{
HtmlNode BottomMenuHolder = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@class='paginator']/menu");
if (string.IsNullOrEmpty(AppSettings.APIKey) || BottomMenuHolder.ChildNodes.Count <= 3)
{
goto GrabPageOnly_Pools;
}

MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download the whole pool?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.OK)
//If there is API key or page navigation has more than 3 buttons (<, 1, >) then grab all
if (!string.IsNullOrEmpty(AppSettings.APIKey) || BottomMenuHolder.ChildNodes.Count > 3)
{
string PoolID = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//li[@id='subnav-show']/a").Attributes["href"].Value;
PoolID = PoolID.Substring(PoolID.LastIndexOf('/') + 1);
MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download the whole pool?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.OK)
{
string PoolID = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//li[@id='subnav-show']/a").Attributes["href"].Value;
PoolID = PoolID.Substring(PoolID.LastIndexOf('/') + 1);

Grab_Pool(PoolID);
return;
Grab_Pool(PoolID);
return;
}
}

GrabPageOnly_Pools:
//If no API key or page navigation has 3 buttons (<, 1, >) then just grab this (single) page
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='a-show']//article");
if (NodeSelector != null)
{
Expand Down Expand Up @@ -173,7 +168,7 @@ internal static void GrabMediaLinks(string WebAddress)

case "popular":
{
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts-container']/article");
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts']/section[@class='posts-container']/article");
if (NodeSelector != null)
{
SpecialSaveFolder = Module_Downloader.SelectFolderPopup(SpecialSaveFolder);
Expand Down Expand Up @@ -204,37 +199,37 @@ internal static void GrabMediaLinks(string WebAddress)
case "favorites":
{
SpecialSaveFolder = Module_Downloader.SelectFolderPopup(SpecialSaveFolder);
if (string.IsNullOrEmpty(AppSettings.APIKey) || HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@class='paginator']/menu").ChildNodes.Count <= 3)
{
goto GrabPageOnly_Favorites;
}

MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download all favorites?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.Yes)
//If there is API key or page navigation has more than 3 buttons (<, 1, >) then grab all
if (!string.IsNullOrEmpty(AppSettings.APIKey) || HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@class='paginator']/menu").ChildNodes.Count > 3)
{
string TagQuery = WebAddress;
if (TagQuery.Contains("user_id"))
{
TagQuery = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//input[@id='tags']").Attributes["value"].Value;
}
else
MessageBoxResult MessageBoxResultTemp = Window_Main._RefHolder.Dispatcher.Invoke(() => { return MessageBox.Show(Window_Main._RefHolder, "Do you want to download all favorites?\nPress no if you want current page only.", "Download", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); });
if (MessageBoxResultTemp == MessageBoxResult.Yes)
{
if (TagQuery.Contains('?'))
string TagQuery = WebAddress;
if (TagQuery.Contains("user_id"))
{
TagQuery = TagQuery.Substring(TagQuery.IndexOf("?") + 1);
TagQuery = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//input[@id='tags']").Attributes["value"].Value;
}
else
{
TagQuery = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//input[@id='tags']").Attributes["value"].Value;
if (TagQuery.Contains('?'))
{
TagQuery = TagQuery.Substring(TagQuery.IndexOf("?") + 1);
}
else
{
TagQuery = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//input[@id='tags']").Attributes["value"].Value;
}
}
}

Grab_MediaWithTags(TagQuery, SpecialSaveFolder);
return;
Grab_MediaWithTags(TagQuery, SpecialSaveFolder);
return;
}
}

GrabPageOnly_Favorites:
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts-container']/article");
//If no API key or page navigation has 3 buttons (<, 1, >) then just grab this (single) page
HtmlNodeCollection NodeSelector = HtmlDocumentTemp.DocumentNode.SelectNodes(".//div[@id='posts']/section[@class='posts-container']/article");
if (NodeSelector != null)
{
foreach (HtmlNode Post in NodeSelector)
Expand Down
2 changes: 1 addition & 1 deletion e621 ReBot v3/Windows/Window_Main.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
</TabItem>

<TabItem x:Name="ReBot_BrowserTab" Header="TabItem" Background="Transparent" >
<Grid x:Name="BrowserTabGrid">
<Grid x:Name="BrowserTabGrid" Margin="0,0,0,1">
<customcontrols:BrowserControl x:Name="ReBot_Browser" Visibility="Hidden"/>
<Grid x:Name="BrowserLoadingIcon" Width="200" Height="200" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,260,0,0">
<customcontrols:Custom_TextWithOutline Width="180" Height="32" Text="Initializing Browser..." FontSize="18" Fill="{DynamicResource ThemeFocus}" Margin="8,0,0,0" FontWeight="Bold" StrokeThickness="2"/>
Expand Down
2 changes: 1 addition & 1 deletion e621 ReBot v3/Windows/Window_PoolWatcher.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ internal static void PoolWatcher_AddPool2Watch()
}
}

string ThumbnailURL = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@id='posts-container']/article[@id]").Attributes["data-md5"].Value;
string ThumbnailURL = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@id='posts']/section[@class='posts-container']/article[@id]").Attributes["data-md5"].Value;
ThumbnailURL = $"https://static1.e621.net/data/preview/{ThumbnailURL.Substring(0, 2)}/{ThumbnailURL.Substring(2, 2)}/{ThumbnailURL}.jpg";

string PoolName = HtmlDocumentTemp.DocumentNode.SelectSingleNode(".//div[@id='c-pools']/div[@id='a-show']/h2/a").InnerText.Trim();
Expand Down
10 changes: 1 addition & 9 deletions e621 ReBot v3/e621 ReBot v3.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<ApplicationIcon>Resources\ReBot_Icon.ico</ApplicationIcon>
<Platforms>x64</Platforms>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<FileVersion>3.0.0.43</FileVersion>
<FileVersion>3.0.0.44</FileVersion>
<StartupObject>e621_ReBot_v3.App</StartupObject>
<IsPublishable>False</IsPublishable>
<RepositoryUrl>https://github.com/e621-ReBot/e621-ReBot-v3</RepositoryUrl>
Expand Down Expand Up @@ -177,18 +177,10 @@
<PackageReference Include="CefSharp.Wpf.NETCore" Version="119.4.30" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.54" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Collections.Specialized" Version="4.3.0" />
</ItemGroup>

<ItemGroup>
<PackageReference Update="chromiumembeddedframework.runtime.win-arm64" Version="119.4.3" />
</ItemGroup>

<ItemGroup>
<PackageReference Update="chromiumembeddedframework.runtime.win-x64" Version="119.4.3" />
</ItemGroup>

<ItemGroup>
<PackageReference Update="chromiumembeddedframework.runtime.win-x86" Version="119.4.3" />
</ItemGroup>
</Project>

0 comments on commit 561de43

Please sign in to comment.