private void SetProject(string code, ProjectEnum project, string customProject, string protocol)
{
SplashScreen.SetProgress(81);
// set namespaces
try
{
//set namespaces
Variables.SetProject(code, project, customProject, protocol);
}
catch (WebException ex)
{
// Check for HTTP 401 error.
var resp = (HttpWebResponse)ex.Response;
if (resp == null) throw;
switch (resp.StatusCode)
{
case HttpStatusCode.Unauthorized /*401*/:
ShowLogin();
// Reload project.
Variables.SetProject(code, project, customProject, protocol);
break;
}
}
catch (ArgumentNullException)
{
MessageBox.Show("The interwiki list didn't load correctly. Please check your internet connection, and then restart AWB");
}
if (Variables.TryLoadingAgainAfterLogin)
{
MessageBox.Show(
"You seem to be accessing a private wiki. Project loading will be attempted again after login.",
"Restricted Wiki");
}
// set interwikiorder
switch (Variables.LangCode)
{
case "en":
case "lb":
case "pl":
case "no":
case "sv":
case "simple":
Parser.InterWikiOrder = InterWikiOrderEnum.LocalLanguageAlpha;
break;
case "he":
case "hu":
case "te":
case "yi":
Parser.InterWikiOrder = InterWikiOrderEnum.AlphabeticalEnFirst;
break;
case "ms":
case "et":
case "nn":
case "fi":
case "vi":
case "ur":
Parser.InterWikiOrder = InterWikiOrderEnum.LocalLanguageFirstWord;
break;
default:
Parser.InterWikiOrder = InterWikiOrderEnum.Alphabetical;
break;
}
// commons uses alpha as https://commons.wikimedia.org/w/api.php?action=query&meta=allmessages&ammessages=Interwiki%20config-sorting%20order is not set to an override value
if(project == ProjectEnum.commons)
Parser.InterWikiOrder = InterWikiOrderEnum.Alphabetical;
// user interface
if (!Variables.IsWikipediaEN)
{
humanNameDisambigTagToolStripMenuItem.Visible = birthdeathCatsToolStripMenuItem.Visible = false;
chkAutoTagger.Checked = false;
}
else if (!humanNameDisambigTagToolStripMenuItem.Visible)
{
humanNameDisambigTagToolStripMenuItem.Visible = birthdeathCatsToolStripMenuItem.Visible = true;
}
UserTalkWarningsLoaded = false; // force reload
if (!Variables.IsCustomProject && !Variables.IsWikia && !Variables.IsWikimediaMonolingualProject)
lblProject.Text = Variables.LangCode + "." + Variables.Project;
else
lblProject.Text = Variables.IsWikimediaMonolingualProject ? Variables.Project.ToString() : Variables.URL;
TemplateRedirectsLoaded = false;
ResetTypoStats();
}