castlelemongrab / parlance

A minimum-dependency ECMAScript client library and CLI tool for Parler – a "free speech" social network that accepts real money to buy "influence" points to boost organic non-advertising content

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement full support for post echoes

castle-lemongrab opened this issue · comments

Support for fetching feed data and feed echo data landed in 5427ff2, but the latter appears to be incomplete – either including inappropriate data or excluding relevant data. Investigate this issue and correct it if necessary. Twelve units. Unacceptable.

Analysis follows.

1. To include full echo objects in posts:
    (a) Hash `postRefs` by `_id`, creating an associative array called `hash`
    (b) If post[i].root exists, replace `post[i].root` with `hash[post[i].root]`
          => Warn if `hash[post[i].root]` is not an object
    (c) If post[i].parent exists, replace `post[i]` with `hash[post[i].parent]`
          => Warn if `hash[post[i].parent]` is not an object

2. To exclude all echoes from an array of posts:
    (a) Omit any post containing a `parent` object

3. To exclude all commented echoes from an array of posts:
    (a) Omit any post containing both a `.parent` object and a `.root` object.
          => Posts containing a `.root` object should always contain a `.parent` object

4. Some general observations:
    (a) A postRef object with a `.root` property will not contain a `.parent` property
    (b) Commenting while echoing an echo just sets the posts's `.body parameter
          => Doing this does not create a real object anywhere
          => Deleting a commented echo of an echo simply clears the post `.body`
          => Deleting a commented echo of an echo leaves the echo behind, sans comment

5. Overall design:
  (a) There’s no real threading in Parler's data model
  (b) There are two parent references for echoed posts (.parent and .root)
  (c) Commenting when echoing an echo just changes post.body to something other than ""
  (d) Comments have one parent reference (.parent; no .root property)
  (e) Replies to comments are flat, and no comment – or any reply to a comment – can echoed
  (f) They tried to build a Twitter clone and accidentally built a bad Facebook clone.

The above is actionable and will be completed tomorrow. One million years dungeon. All of you, dungeon.

Three hours review dungeon. No trials. Twelve units.

FIX THE DOOR.

Acceptable. Tentatively acceptable. Future testing may reveal dungeon. Ten hours dungeon.