Commit 8f2aca38aa67fc3bb380305c95663dfaeb670693
Pull in all comments
Anders Rune Jensen committed on 1/2/2018, 9:19:09 PMParent: 5bd022593cbd8e9908ea16f9dbdbb634e8dcd56b
Files changed
book/async/get.js | changed |
book/obs/book.js | changed |
book/async/get.js | ||
---|---|---|
@@ -32,9 +32,10 @@ | ||
32 | 32 … | key, |
33 | 33 … | common: msg.content, |
34 | 34 … | subjective: { |
35 | 35 … | [api.keys.sync.id()]: { |
36 | - key: '', rating: '', ratingType: '', review: '', shelve: '', genre: '', comments: [] | |
36 … | + key: '', allKeys: [], rating: '', ratingType: '', review: '', | |
37 … | + shelve: '', genre: '', comments: [] | |
37 | 38 … | } |
38 | 39 … | } |
39 | 40 … | } |
40 | 41 … | |
@@ -50,33 +51,40 @@ | ||
50 | 51 … | pull.values(Object.values(book.subjective)), |
51 | 52 … | pull.drain(subj => { |
52 | 53 … | if (subj.key) { |
53 | 54 … | pull( |
54 | - api.sbot.pull.links({ dest: subj.key, live: true }), | |
55 | - pull.filter(data => data.key), | |
56 | - pull.asyncMap((data, cb) => { | |
57 | - api.sbot.async.get(data.key, (err, msg) => { | |
58 | - msg.key = data.key | |
59 | - cb(err, msg) | |
60 | - }) | |
61 | - }), | |
62 | - //sort((a, b) => a.timestamp - b.timestamp), | |
63 | - pull.drain(msg => { | |
64 | - if (msg.content.type !== "post") return | |
55 … | + pull.values(Object.values(subj.allKeys)), | |
56 … | + pull.drain(key => { | |
57 … | + pull( | |
58 … | + api.sbot.pull.links({ dest: key, live: key == subj.key }), | |
59 … | + pull.filter(data => data.key), | |
60 … | + pull.asyncMap((data, cb) => { | |
61 … | + api.sbot.async.get(data.key, (err, msg) => { | |
62 … | + msg.key = data.key | |
63 … | + cb(err, msg) | |
64 … | + }) | |
65 … | + }), | |
66 … | + //sort((a, b) => a.timestamp - b.timestamp), | |
67 … | + pull.drain(msg => { | |
68 … | + if (msg.content.type !== "post") return | |
65 | 69 … | |
66 | - // FIXME: links is buggy and returns the same message twice | |
67 | - if (!subj.comments.some(c => c.content.text == msg.content.text)) { | |
68 | - subj.comments.push(msg) | |
69 | - cb(book) | |
70 | - } | |
70 … | + // FIXME: links is buggy and returns the same message twice | |
71 … | + if (!subj.comments.some(c => c.content.text == msg.content.text)) { | |
72 … | + subj.comments.push(msg) | |
73 … | + cb(book) | |
74 … | + } | |
75 … | + }) | |
76 … | + ) | |
71 | 77 … | }) |
72 | 78 … | ) |
73 | 79 … | } |
74 | 80 … | }, () => cb(book)) |
75 | 81 … | ) |
76 | 82 … | } |
77 | 83 … | |
78 | 84 … | function applyAmends(book, cb) { |
85 … | + let allAuthorKeys = {} | |
86 … | + | |
79 | 87 … | pull( |
80 | 88 … | api.sbot.pull.links({ dest: book.key }), // FIXME: can't do live |
81 | 89 … | // together with |
82 | 90 … | // sorting and links |
@@ -93,11 +101,18 @@ | ||
93 | 101 … | if (msg.content.type !== "about") return |
94 | 102 … | |
95 | 103 … | const { rating, ratingType, shelve, genre, review } = msg.content |
96 | 104 … | |
105 … | + if (!allAuthorKeys[msg.author]) | |
106 … | + allAuthorKeys[msg.author] = [] | |
107 … | + | |
108 … | + let allKeys = allAuthorKeys[msg.author] | |
109 … | + allKeys.push(msg.key) | |
110 … | + | |
97 | 111 … | if (rating || ratingType || shelve || genre || review) { |
98 | 112 … | book.subjective[msg.author] = { |
99 | 113 … | key: msg.key, |
114 … | + allKeys, | |
100 | 115 … | rating, |
101 | 116 … | ratingType, |
102 | 117 … | shelve, |
103 | 118 … | genre, |
Built with git-ssb-web