<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=MyWiki%3AAutoWikiBrowser%2FAPI_migration</id>
	<title>MyWiki:AutoWikiBrowser/API migration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=MyWiki%3AAutoWikiBrowser%2FAPI_migration"/>
	<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=MyWiki:AutoWikiBrowser/API_migration&amp;action=history"/>
	<updated>2026-04-30T14:09:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://70.231.62.181/index.php?title=MyWiki:AutoWikiBrowser/API_migration&amp;diff=4759917&amp;oldid=prev</id>
		<title>imported&gt;MalnadachBot: Fixed Lint errors. (Task 12)</title>
		<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=MyWiki:AutoWikiBrowser/API_migration&amp;diff=4759917&amp;oldid=prev"/>
		<updated>2023-02-09T09:49:56Z</updated>

		<summary type="html">&lt;p&gt;Fixed &lt;a href=&quot;/index.php?title=WP:LINT&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:LINT (page does not exist)&quot;&gt;Lint errors&lt;/a&gt;. (&lt;a href=&quot;/index.php/User:MalnadachBot/Task_12&quot; title=&quot;User:MalnadachBot/Task 12&quot;&gt;Task 12&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{AWB}}&lt;br /&gt;
[[Category:AutoWikiBrowser|API migration]]&lt;br /&gt;
&lt;br /&gt;
== Migration to [[mw:API|Bot API]] specs ==&lt;br /&gt;
&lt;br /&gt;
=== Rationale ===&lt;br /&gt;
* Easier, uniform access to wiki using XML, much less prone to break in case of changes than plain HTML&lt;br /&gt;
* Potentially much faster, should save bandwidth considerably&lt;br /&gt;
* Would allow to minimise WebBrowser usage - less bugs, faster processing due to elimination of in-place DOM magic; also should make AWB much more portable (I suppose that Mono supports the basic WebBrowser crap we need to display previews and diffs - MaxSem)&lt;br /&gt;
&lt;br /&gt;
=== Current write API status ===&lt;br /&gt;
&amp;lt;s&amp;gt;Horribly immature: not tested widely enough, not fully reviewed security-wise, not enabled on any Wikimedia projects other than testwiki, even the older query functions are still subject to breaking changes.&amp;lt;/s&amp;gt;&lt;br /&gt;
:Enabled now, some problems remain.&lt;br /&gt;
&lt;br /&gt;
We cannot release even a beta &amp;lt;s&amp;gt;until it&amp;#039;s enabled everywhere&amp;lt;/s&amp;gt; and included in a quarterly MW release, signifying some level of stability. (At least four to six months from now? - MaxSem)&lt;br /&gt;
&lt;br /&gt;
;Important bugs:&lt;br /&gt;
* &amp;lt;s&amp;gt;[[bugzilla:14210|14210]]: Activate write API on production wikis &amp;#039;&amp;#039;(kinda tracking)&amp;#039;&amp;#039;&amp;lt;/s&amp;gt; fixed&lt;br /&gt;
* &amp;lt;s&amp;gt;[[bugzilla:14261|14261]]: More information in hookaborted API error needed - &amp;#039;&amp;#039;blocking issue for our purposes&amp;#039;&amp;#039;&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[[bugzilla:14443|14443]]: successful edit causes server to return HTTP 500&amp;lt;/s&amp;gt; fixed&lt;br /&gt;
* [https://bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;component=API&amp;amp;long_desc_type=substring&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;emailassigned_to1=1&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailassigned_to2=1&amp;amp;emailreporter2=1&amp;amp;emailcc2=1&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0= Search all API-related issues]&lt;br /&gt;
&lt;br /&gt;
=== Current progress on AWB side ===&lt;br /&gt;
~90% - logging in/out, editing, deletion and a semi-functional skeleton of asynchronous wrapper.&lt;br /&gt;
&lt;br /&gt;
=== Things to be done ===&lt;br /&gt;
====AWB====&lt;br /&gt;
I assume that API editing should be made available as of version 5.0. -MaxSem&lt;br /&gt;
* Development should be continued as usual&lt;br /&gt;
* {{check mark}}ApiEdit should be finished and maintained&lt;br /&gt;
* {{check mark}}Support for nested exceptions should be added to ErrorHandler - done in {{awbrev|2911}}&lt;br /&gt;
* {{check mark}}We could test API further right now by swithching to API-based previews, for example&lt;br /&gt;
* Political choice: session persistance&lt;br /&gt;
** We should probably store cookies, just like IE does in our current scheme&lt;br /&gt;
** Or make AWB completely profile-dependant?&lt;br /&gt;
*** Could work, but would all users be &amp;quot;happy&amp;quot; saving their passwords somewhere..? &amp;lt;small&amp;gt;—&amp;lt;span style=&amp;quot;font-family:Trebuchet MS;&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;[[User:Reedy|&amp;lt;span style=&amp;quot;color:darkred;&amp;quot;&amp;gt;Ree&amp;lt;/span&amp;gt;]][[User talk:Reedy|&amp;lt;span style=&amp;quot;color:darkred;&amp;quot;&amp;gt;dy&amp;lt;/span&amp;gt;]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/small&amp;gt; 09:47, 13 June 2008 (UTC)&lt;br /&gt;
** And move profiles away from registry?&lt;br /&gt;
*** Storing where is safer?&lt;br /&gt;
***: Registry was deemed one of the safer places, easily accessible, and meant that users didn&amp;#039;t inadvertently send someone their profile, and were there for any settings loaded by that user on that computer. &amp;lt;small&amp;gt;—&amp;lt;span style=&amp;quot;font-family:Trebuchet MS;&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;[[User:Reedy|&amp;lt;span style=&amp;quot;color:darkred;&amp;quot;&amp;gt;Ree&amp;lt;/span&amp;gt;]][[User talk:Reedy|&amp;lt;span style=&amp;quot;color:darkred;&amp;quot;&amp;gt;dy&amp;lt;/span&amp;gt;]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/small&amp;gt; 09:47, 13 June 2008 (UTC)&lt;br /&gt;
***::If we store them in Application Data, accidental uncovery would be unlikely... [[User:MaxSem|Max&amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;em]]&amp;lt;sup&amp;gt;([[User talk:MaxSem|Han shot first!]])&amp;lt;/sup&amp;gt; 11:08, 13 June 2008 (UTC)&lt;br /&gt;
** And encrypt profiles with a master password?&lt;br /&gt;
&lt;br /&gt;
* {{check mark}}Normalise API usage in GetLists, by making it completely dependant on ApiEdit to retrieve data from the site and check the results for errors&lt;br /&gt;
**Somewhat done. GetLists Modulised by Reedy, and then commonised by MaxSem&lt;br /&gt;
* Write a thread-based wrapper for ApiEdit to use in interface&lt;br /&gt;
* {{check mark}}{{check mark}}{{check mark}}Kill WebControl with fire&lt;br /&gt;
* {{check mark}}Phase out the old editor class, probably not worth deleting it&lt;br /&gt;
* Make a branch of old-style AWB for usage by people from third-party wikis running older versions of MW. This branch shouldn&amp;#039;t be able to edit Wikimedia sites. As such, we don&amp;#039;t need it to follow the version checkpage. Its ErrorHandler shouldn&amp;#039;t advice people to post every exception to [[WP:AWB/B]], too.&lt;br /&gt;
* Release 5.0 and prepare enough vaseline when people will start reporting bizarre bugs o_0&lt;br /&gt;
&lt;br /&gt;
====AWBUpdater====&lt;br /&gt;
* &amp;lt;s&amp;gt;Make it copy every file from .zip, not just every file it &amp;#039;&amp;#039;knows&amp;#039;&amp;#039;, as it is currently.&amp;lt;/s&amp;gt; Fixed&lt;br /&gt;
* Take extra precautions that people don&amp;#039;t use older updater.&lt;br /&gt;
* Make it update even if AWB.exe is corrupt or not present.&lt;br /&gt;
* Handle present plugins on update (delete? quarantine? automatically? ask user?). Probably, we could even use reflection to detect obviously outdated ones.&lt;br /&gt;
&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
;Editing classes&lt;br /&gt;
* Don&amp;#039;t use those dreaded singletons like WikiFunctions.Variables, they&amp;#039;re hopelessly screwed up. Also, people should be able to reuse ApiEdit without having long sexual intecourse with AWB-specific stuff. Remember, Variables constructor can be called from zillion places without you even noticing this.&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;/div&gt;</summary>
		<author><name>imported&gt;MalnadachBot</name></author>
	</entry>
</feed>