Skip to content

Commit

Permalink
Mirror updates
Browse files Browse the repository at this point in the history
  • Loading branch information
libgenapps committed Mar 6, 2019
1 parent 339defb commit 3cdc328
Show file tree
Hide file tree
Showing 26 changed files with 154 additions and 137 deletions.
12 changes: 3 additions & 9 deletions LibgenDesktop.Setup/AppFiles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,9 @@ static AppFiles()
AddFile(@"Languages\Spanish.lng");
AddFile(@"Languages\French.lng");
AddFile(@"Mirrors\mirrors.config");
AddFile(@"Mirrors\libgen_io_nonfiction.xslt");
AddFile(@"Mirrors\libgen_io_fiction.xslt");
AddFile(@"Mirrors\libgen_io_scimag.xslt");
AddFile(@"Mirrors\libgen_pw_nonfiction_step1.xslt");
AddFile(@"Mirrors\libgen_pw_nonfiction_step2.xslt");
AddFile(@"Mirrors\libgen_pw_fiction_step1.xslt");
AddFile(@"Mirrors\libgen_pw_fiction_step2.xslt");
AddFile(@"Mirrors\libgen_pw_scimag_step1.xslt");
AddFile(@"Mirrors\libgen_pw_scimag_step2.xslt");
AddFile(@"Mirrors\libgen_pw_nonfiction.xslt");
AddFile(@"Mirrors\libgen_pw_fiction.xslt");
AddFile(@"Mirrors\libgen_pw_scimag.xslt");
AddFile(@"Mirrors\bookfi_net.xslt");
AddFile(@"Mirrors\b_ok_xyz_step1.xslt");
AddFile(@"Mirrors\b_ok_xyz_step2.xslt");
Expand Down
4 changes: 2 additions & 2 deletions LibgenDesktop.Setup/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
{
internal static class Constants
{
public const string CURRENT_VERSION = "1.2.4";
public const string TITLE_VERSION = "1.2.4";
public const string CURRENT_VERSION = "1.2.5";
public const string TITLE_VERSION = "1.2.5";
public const string PRODUCT_TITLE_FORMAT = "Libgen Desktop " + TITLE_VERSION + " ({0}-bit)";
public const string SHORTCUT_TITLE_FORMAT = "Libgen Desktop ({0}-bit)";
public const string PRODUCT_COMPANY = "Libgen Apps";
Expand Down
1 change: 1 addition & 0 deletions LibgenDesktop/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ private void Close()
if (mainModel != null)
{
mainModel.Downloader.Shutdown();
mainModel.Dispose();
}
Shutdown();
}
Expand Down
6 changes: 3 additions & 3 deletions LibgenDesktop/Common/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ namespace LibgenDesktop.Common
internal static class Constants
{
public const string DATABASE_METADATA_APP_NAME = "LibgenDesktop";
public const string CURRENT_VERSION = "1.2.4";
public const string CURRENT_GITHUB_RELEASE_NAME = "1.2.4";
public static readonly DateTime CURRENT_GITHUB_RELEASE_DATE = new DateTime(2019, 1, 27);
public const string CURRENT_VERSION = "1.2.5";
public const string CURRENT_GITHUB_RELEASE_NAME = "1.2.5";
public static readonly DateTime CURRENT_GITHUB_RELEASE_DATE = new DateTime(2019, 3, 6);
public const string CURRENT_DATABASE_VERSION = "1.2.1";

public const string APP_SETTINGS_FILE_NAME = "libgen.config";
Expand Down
36 changes: 6 additions & 30 deletions LibgenDesktop/LibgenDesktop.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -665,41 +665,17 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\mirrors.config</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_io_nonfiction.xslt">
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_nonfiction.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_io_nonfiction.xslt</TargetPath>
<TargetPath>Mirrors\libgen_pw_nonfiction.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_io_fiction.xslt">
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_fiction.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_io_fiction.xslt</TargetPath>
<TargetPath>Mirrors\libgen_pw_fiction.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_io_scimag.xslt">
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_scimag.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_io_scimag.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_nonfiction_step1.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_nonfiction_step1.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_nonfiction_step2.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_nonfiction_step2.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_fiction_step1.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_fiction_step1.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_fiction_step2.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_fiction_step2.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_scimag_step1.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_scimag_step1.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\libgen_pw_scimag_step2.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>Mirrors\libgen_pw_scimag_step2.xslt</TargetPath>
<TargetPath>Mirrors\libgen_pw_scimag.xslt</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="Resources\Mirrors\bookfi_net.xslt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
Expand Down
34 changes: 32 additions & 2 deletions LibgenDesktop/Models/Download/DownloadItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@

namespace LibgenDesktop.Models.Download
{
internal class DownloadItem
internal class DownloadItem : IDisposable
{
private CancellationTokenSource cancellationTokenSource;
private bool disposed;

public DownloadItem(Guid id, string downloadPageUrl, string downloadDirectory, string fileName, string downloadTransformations, string md5Hash,
bool restartSessionOnTimeout)
Expand All @@ -31,6 +32,7 @@ public DownloadItem(Guid id, string downloadPageUrl, string downloadDirectory, s
TotalFileSize = null;
CurrentAttempt = 1;
RestartSessionOnTimeout = restartSessionOnTimeout;
disposed = false;
}

private DownloadItem(DownloadItem source)
Expand All @@ -51,6 +53,7 @@ private DownloadItem(DownloadItem source)
TotalFileSize = source.TotalFileSize;
CurrentAttempt = source.CurrentAttempt;
RestartSessionOnTimeout = source.RestartSessionOnTimeout;
disposed = false;
}

public Guid Id { get; }
Expand All @@ -74,11 +77,25 @@ private DownloadItem(DownloadItem source)

public void CancelDownload()
{
cancellationTokenSource.Cancel();
if (cancellationTokenSource != null)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}
}

public void CreateNewCancellationToken()
{
if (disposed)
{
throw new ObjectDisposedException(nameof(DownloadItem));
}
if (cancellationTokenSource != null)
{
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}
cancellationTokenSource = new CancellationTokenSource();
CancellationToken = cancellationTokenSource.Token;
}
Expand All @@ -87,5 +104,18 @@ public DownloadItem Clone()
{
return new DownloadItem(this);
}

public void Dispose()
{
if (!disposed)
{
if (cancellationTokenSource != null)
{
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}
disposed = true;
}
}
}
}
26 changes: 24 additions & 2 deletions LibgenDesktop/Models/Download/Downloader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

namespace LibgenDesktop.Models.Download
{
internal partial class Downloader
internal class Downloader : IDisposable
{
private readonly object downloadQueueLock;
private readonly string downloadQueueFilePath;
Expand All @@ -35,6 +35,7 @@ internal partial class Downloader
private DownloadSettings downloadSettings;
private bool isInOfflineMode;
private bool isShuttingDown;
private bool disposed;

public Downloader()
{
Expand All @@ -50,6 +51,7 @@ public Downloader()
isShuttingDown = false;
StartEventPublisherTask();
downloadTask = StartDownloadTask();
disposed = false;
}

public event EventHandler DownloaderEvent;
Expand Down Expand Up @@ -225,6 +227,16 @@ public void Shutdown()
Logger.Debug("Downloader was shut down successfully.");
}

public void Dispose()
{
if (!disposed)
{
eventQueue?.Dispose();
downloadTaskResetEvent?.Dispose();
disposed = true;
}
}

private void ResumeDownloadTask()
{
downloadTaskResetEvent.Set();
Expand Down Expand Up @@ -773,7 +785,17 @@ private async Task<HttpResponseMessage> SendDownloadRequestAsync(DownloadItem do
{
Logger.Debug($"Requesting {url}, range: {startPosition.Value} - end.");
}
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
HttpRequestMessage request;
try
{
request = new HttpRequestMessage(HttpMethod.Get, url);
}
catch (Exception exception)
{
Logger.Exception(exception);
ReportError(downloadItem, localization.GetLogLineRequestError(Uri.UnescapeDataString(url)));
return null;
}
request.Headers.UserAgent.ParseAdd(USER_AGENT);
if (downloadItem.Cookies.Any())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public DatabaseWindowLocalizator(List<Translation> prioritizedTranslationList, L
: base(prioritizedTranslationList, formatter)
{
WindowTitle = Format(translation => translation?.WindowTitle);
CurrentDatabase = Format(translation => translation?.CurrentDatabase);
NonFiction = Format(translation => translation?.NonFiction);
Fiction = Format(translation => translation?.Fiction);
SciMagArticles = Format(translation => translation?.SciMagArticles);
Expand All @@ -26,6 +27,7 @@ public DatabaseWindowLocalizator(List<Translation> prioritizedTranslationList, L
}

public string WindowTitle { get; }
public string CurrentDatabase { get; }
public string NonFiction { get; }
public string Fiction { get; }
public string SciMagArticles { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ public string GetLogLineCannotCreateOrOpenFile(string file) =>
Format(translation => translation?.LogMessages?.CannotCreateOrOpenFile, new { file });
public string GetLogLineCannotRenamePartFile(string source, string destination) =>
Format(translation => translation?.LogMessages?.CannotRenamePartFile, new { source, destination });
public string GetLogLineRequestError(string url) => Format(translation => translation?.LogMessages?.LogLineRequestError, new { url });

private string Format(Func<Translation.DownloadManagerTranslation, string> field, object templateArguments = null)
{
Expand Down
2 changes: 2 additions & 0 deletions LibgenDesktop/Models/Localization/Translation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,7 @@ internal class LibraryTranslation
internal class DatabaseTranslation
{
public string WindowTitle { get; set; }
public string CurrentDatabase { get; set; }
public string NonFiction { get; set; }
public string Fiction { get; set; }
public string SciMagArticles { get; set; }
Expand Down Expand Up @@ -624,6 +625,7 @@ internal class DownloadManagerLogMessagesTranslation
public string ServerResponseTimeout { get; set; }
public string DownloadIncompleteError { get; set; }
public string FileWriteError { get; set; }
public string LogLineRequestError { get; set; }
public string UnexpectedError { get; set; }
}

Expand Down
13 changes: 12 additions & 1 deletion LibgenDesktop/Models/MainModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

namespace LibgenDesktop.Models
{
internal class MainModel
internal class MainModel : IDisposable
{
internal enum DatabaseStatus
{
Expand Down Expand Up @@ -59,6 +59,7 @@ internal enum DownloadFileResult

private Updater updater;
private LocalDatabase localDatabase;
private bool disposed;

public MainModel()
{
Expand All @@ -82,6 +83,7 @@ public MainModel()
ConfigureUpdater();
Downloader = new Downloader();
ConfigureDownloader();
disposed = false;
}

public AppSettings AppSettings { get; }
Expand Down Expand Up @@ -819,6 +821,15 @@ public void ConfigureDownloader()
Downloader.Configure(Localization.CurrentLanguage, AppSettings.Network, AppSettings.Download);
}

public void Dispose()
{
if (!disposed)
{
Downloader?.Dispose();
disposed = true;
}
}

private Task<List<T>> SearchItemsAsync<T>(Func<string, int?, IEnumerable<T>> searchFunction, string searchQuery,
IProgress<SearchProgress> progressHandler, CancellationToken cancellationToken)
{
Expand Down
2 changes: 2 additions & 0 deletions LibgenDesktop/Resources/Languages/English.lng
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
"Database":
{
"WindowTitle": "Database information",
"CurrentDatabase": "Current database:",
"NonFiction": "Non-fiction books",
"Fiction": "Fiction books",
"SciMagArticles": "Scientific articles",
Expand Down Expand Up @@ -597,6 +598,7 @@
"ServerResponseTimeout": "Server response timeout.",
"DownloadIncompleteError": "Server indicates that file download is complete, but it is not.",
"FileWriteError": "File write error.",
"LogLineRequestError": "Couldn't send request to {url}",
"UnexpectedError": "An unexpected error occurred."
}
},
Expand Down
2 changes: 2 additions & 0 deletions LibgenDesktop/Resources/Languages/Russian.lng
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
"Database":
{
"WindowTitle": "Статистика базы данных",
"CurrentDatabase": "База данных:",
"NonFiction": "Нехудожественная литература",
"Fiction": "Художественная литература",
"SciMagArticles": "Научные статьи",
Expand Down Expand Up @@ -597,6 +598,7 @@
"ServerResponseTimeout": "Превышено время ожидания ответа от сервера.",
"DownloadIncompleteError": "Загрузка завершена не полностью.",
"FileWriteError": "Ошибка записи файла на диск.",
"LogLineRequestError": "Не удалось отправить запрос по адресу {url}",
"UnexpectedError": "Возникла непредвиденная ошибка."
}
},
Expand Down
8 changes: 0 additions & 8 deletions LibgenDesktop/Resources/Mirrors/libgen_io_fiction.xslt

This file was deleted.

8 changes: 0 additions & 8 deletions LibgenDesktop/Resources/Mirrors/libgen_io_nonfiction.xslt

This file was deleted.

8 changes: 0 additions & 8 deletions LibgenDesktop/Resources/Mirrors/libgen_io_scimag.xslt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="(//a[contains(@href, '/download/book/')])[1]">
<xsl:text>https://libgen.pw</xsl:text>
<xsl:value-of select="@href" />
</xsl:for-each>
</xsl:template>
Expand Down
9 changes: 0 additions & 9 deletions LibgenDesktop/Resources/Mirrors/libgen_pw_fiction_step1.xslt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="(//a[contains(@href, '/download/book/')])[1]">
<xsl:text>https://fiction.libgen.pw</xsl:text>
<xsl:value-of select="@href" />
</xsl:for-each>
</xsl:template>
Expand Down
Loading

0 comments on commit 3cdc328

Please sign in to comment.