Cscott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/97013


Change subject: Fix key in revisions.db to be unique in a multiple wiki 
collection.
......................................................................

Fix key in revisions.db to be unique in a multiple wiki collection.

Change-Id: I6e173f8eaf48dc1ee9dfabc1132d84163a3876da
---
M lib/index.js
M lib/revisions.js
2 files changed, 10 insertions(+), 6 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/bundler
 refs/changes/13/97013/1

diff --git a/lib/index.js b/lib/index.js
index 9728047..56f3a30 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -166,9 +166,12 @@
                                        iwiki = repo.wiki;
                                }
                        });
+                       // normalize namespace (localized namespaces don't work 
on commons)
+                       var canontitle = img.short.replace(/^[^:]+:/, 'File:');
                        titles.push({
                                wiki: iwiki,
-                               title: img.short
+                               title: img.short,
+                               canontitle: canontitle
                                // images are always the 'latest' revision
                        });
                });
diff --git a/lib/revisions.js b/lib/revisions.js
index a921dea..cab04f9 100644
--- a/lib/revisions.js
+++ b/lib/revisions.js
@@ -40,9 +40,10 @@
 
 var writeOne = function(data, outstream, db) {
        // write db record
-       var revid = (data.revisions || [])[0].revid;
-       if (!revid) { throw new Error("revision not found"); }
-       var p = db.put(revid, data);
+       // the key is a bit hacky, but revision id is not unique across
+       // multiple wikis and neither is title alone.
+       var key = data.wiki + '|' + data.title;
+       var p = db.put(key, data);
        if (!outstream) {
                return p;
        }
@@ -76,8 +77,8 @@
        var p = when.resolve();
        titles.forEach(function(t) {
                p = p.then(function() {
-                       log('Fetching revision info for', JSON.stringify(t));
-                       return fetchOne(wikis, t.wiki, t.title, t.revid);
+                       log('Fetching revision info for', t.title);
+                       return fetchOne(wikis, t.wiki, t.canontitle || t.title, 
t.revid);
                }).then(function(data) {
                        return data===null ? null : writeOne(data, revStream, 
revDb);
                });

-- 
To view, visit https://gerrit.wikimedia.org/r/97013
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6e173f8eaf48dc1ee9dfabc1132d84163a3876da
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator/bundler
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to