mirror of https://github.com/odrling/Aegisub
Make the update checker configurable
Move the server and base url to the build-time configuration options and make it disablable entirely. Originally committed to SVN as r6911.
This commit is contained in:
parent
87370eb9c0
commit
7d2fb49828
|
@ -630,6 +630,34 @@ AC_SUBST(GETTEXT_PACKAGE)
|
||||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
||||||
[The basename for our gettext translation domains.])
|
[The basename for our gettext translation domains.])
|
||||||
|
|
||||||
|
################
|
||||||
|
# Update checker
|
||||||
|
################
|
||||||
|
AC_MSG_CHECKING([whether to enable the update checker])
|
||||||
|
AC_ARG_ENABLE(update-checker,
|
||||||
|
AS_HELP_STRING([--disable-update-checker], [disable the update checker [no]]))
|
||||||
|
AC_MSG_RESULT(${enable_update_checker:=yes})
|
||||||
|
AS_IF([test "x$enable_update_checker" != "xno"],
|
||||||
|
[AC_DEFINE([WITH_UPDATE_CHECKER], [],
|
||||||
|
[Whether to enable the update checker])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for update checker server])
|
||||||
|
AC_ARG_WITH(update-server,
|
||||||
|
AS_HELP_STRING([--with-update-server=HOSTNAME],
|
||||||
|
[Server to use for the update checker
|
||||||
|
[updates.aegisub.org]]))
|
||||||
|
AC_MSG_RESULT(${with_update_server:=updates.aegisub.org})
|
||||||
|
AC_DEFINE_UNQUOTED([UPDATE_CHECKER_SERVER], ["$with_update_server"],
|
||||||
|
[Server for the update checker])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for update checker base URL])
|
||||||
|
AC_ARG_WITH(update-url,
|
||||||
|
AS_HELP_STRING([--with-update-url=HOSTNAME],
|
||||||
|
[Base path to use for the update checker [/trunk]]))
|
||||||
|
AC_MSG_RESULT(${with_update_url:=/trunk})
|
||||||
|
AC_DEFINE_UNQUOTED([UPDATE_CHECKER_BASE_URL], ["$with_update_url"],
|
||||||
|
[Base path for the update checker])
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
# Default settings for Providers/Players
|
# Default settings for Providers/Players
|
||||||
# * This is done at the end to preserve sanity rather than littering
|
# * This is done at the end to preserve sanity rather than littering
|
||||||
|
|
|
@ -314,6 +314,8 @@ namespace cmd {
|
||||||
reg(new app_options);
|
reg(new app_options);
|
||||||
reg(new app_toggle_global_hotkeys);
|
reg(new app_toggle_global_hotkeys);
|
||||||
reg(new app_toggle_toolbar);
|
reg(new app_toggle_toolbar);
|
||||||
|
#ifdef WITH_UPDATE_CHECKER
|
||||||
reg(new app_updates);
|
reg(new app_updates);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,9 @@
|
||||||
# define UPDATE_CHECKER_ACCEPT_TAGS "win64 source"
|
# define UPDATE_CHECKER_ACCEPT_TAGS "win64 source"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Where the update checker should look for updates
|
||||||
|
#define UPDATE_CHECKER_SERVER "updates.aegisub.org"
|
||||||
|
#define UPDATE_CHECKER_BASE_URL "/trunk"
|
||||||
|
|
||||||
///////////// NOT RECOMMENDED /////////////
|
///////////// NOT RECOMMENDED /////////////
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#ifdef WITH_UPDATE_CHECKER
|
||||||
|
|
||||||
#include "dialog_version_check.h"
|
#include "dialog_version_check.h"
|
||||||
|
|
||||||
#ifndef AGI_PRE
|
#ifndef AGI_PRE
|
||||||
|
@ -325,24 +327,20 @@ void AegisubVersionCheckerThread::DoCheck()
|
||||||
inserter(accept_tags, accept_tags.end()));
|
inserter(accept_tags, accept_tags.end()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const wxString servername = "updates.aegisub.org";
|
wxString path = wxString::Format(
|
||||||
const wxString base_updates_path = "/trunk";
|
"%s?rev=%d&rel=%d&os=%s&lang=%s",
|
||||||
|
UPDATE_CHECKER_BASE_URL,
|
||||||
wxString querystring = wxString::Format(
|
|
||||||
"?rev=%d&rel=%d&os=%s&lang=%s",
|
|
||||||
GetSVNRevision(),
|
GetSVNRevision(),
|
||||||
GetIsOfficialRelease()?1:0,
|
GetIsOfficialRelease()?1:0,
|
||||||
GetOSShortName(),
|
GetOSShortName(),
|
||||||
GetSystemLanguage());
|
GetSystemLanguage());
|
||||||
|
|
||||||
wxString path = base_updates_path + querystring;
|
|
||||||
|
|
||||||
wxHTTP http;
|
wxHTTP http;
|
||||||
http.SetHeader("User-Agent", wxString("Aegisub ") + GetAegisubLongVersionString());
|
http.SetHeader("User-Agent", wxString("Aegisub ") + GetAegisubLongVersionString());
|
||||||
http.SetHeader("Connection", "Close");
|
http.SetHeader("Connection", "Close");
|
||||||
http.SetFlags(wxSOCKET_WAITALL | wxSOCKET_BLOCK);
|
http.SetFlags(wxSOCKET_WAITALL | wxSOCKET_BLOCK);
|
||||||
|
|
||||||
if (!http.Connect(servername))
|
if (!http.Connect(UPDATE_CHECKER_SERVER))
|
||||||
throw VersionCheckError(STD_STR(_("Could not connect to updates server.")));
|
throw VersionCheckError(STD_STR(_("Could not connect to updates server.")));
|
||||||
|
|
||||||
agi::scoped_ptr<wxInputStream> stream(http.GetInputStream(path));
|
agi::scoped_ptr<wxInputStream> stream(http.GetInputStream(path));
|
||||||
|
@ -533,3 +531,5 @@ static void register_event_handler()
|
||||||
wxTheApp->Bind(AEGISUB_EVENT_VERSIONCHECK_RESULT, on_update_result);
|
wxTheApp->Bind(AEGISUB_EVENT_VERSIONCHECK_RESULT, on_update_result);
|
||||||
is_registered = true;
|
is_registered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -211,12 +211,16 @@ FrameMain::FrameMain (wxArrayString args)
|
||||||
StartupLog("Possibly perform automatic updates check");
|
StartupLog("Possibly perform automatic updates check");
|
||||||
if (OPT_GET("App/First Start")->GetBool()) {
|
if (OPT_GET("App/First Start")->GetBool()) {
|
||||||
OPT_SET("App/First Start")->SetBool(false);
|
OPT_SET("App/First Start")->SetBool(false);
|
||||||
|
#ifdef WITH_UPDATE_CHECKER
|
||||||
int result = wxMessageBox(_("Do you want Aegisub to check for updates whenever it starts? You can still do it manually via the Help menu."),_("Check for updates?"), wxYES_NO | wxCENTER);
|
int result = wxMessageBox(_("Do you want Aegisub to check for updates whenever it starts? You can still do it manually via the Help menu."),_("Check for updates?"), wxYES_NO | wxCENTER);
|
||||||
OPT_SET("App/Auto/Check For Updates")->SetBool(result == wxYES);
|
OPT_SET("App/Auto/Check For Updates")->SetBool(result == wxYES);
|
||||||
config::opt->Flush();
|
config::opt->Flush();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WITH_UPDATE_CHECKER
|
||||||
PerformVersionCheck(false);
|
PerformVersionCheck(false);
|
||||||
|
#endif
|
||||||
|
|
||||||
StartupLog("Leaving FrameMain constructor");
|
StartupLog("Leaving FrameMain constructor");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue