Malcolm Ocean's roamblog

slack2roam

created 2020-05-20 · edited 2020-05-20 · open in Roam
  • Thinking out loud May 19th, 2020 as I work on this.
    • First step: explore slack export data and see what it looks like.
      • With wf2roam I was so familiar with the workflowy format I could create it from scratch. Not so, here!
      • Okay, basic format of the export script I'm using is that you get
        • channel1
          • 2020-03-11.json
          • 2020-03-12.json
        • channel2
          • ..etc
      • And each JSON file is just an array...
        • oh hang on, this will be easier if I look at messages I still have access to, haha.
        • oh dope. 2020-05-09 has threads, and uploaded files.
        • ok, first thing that's obvious is that the JSON files of messages are sorted in reverse order—newest at the top. that helps for reading
        • the rich text formatting is... complex! it's basically super awkward html-but-in-json.
          • #todo check if someone's written something to turn that into HTML?
          • although I guess what's needed is not actually html but roam formatting... so it would probably be easier to just start with the raw
            • huh, the link format in the raw text is weird
            • yeah, lots of little fiddlybits to this
            • but whatever, some sort of conversion function from slack to roam, that can be iterated on
          • whoaaaaaaa weird. a new message in an old thread ofc doesn't show up in the old thread's JSON. obvs in retrospect
            • that'll be one of the main challenges here, actually. but probably something clever possible with block refs
              • oh, could actually do all thread replies (even same day) using block refs?
        • looks like the ID for threads is actually a microsecond timestamp (well, seconds but with 6 decimal places)
          • ahh and the original thread has that
        • other notes
          • timestamps are UTC
          • and so are "what day's JSON file does this belong to"?
            • soooooo prolly that basically needs to get ignored, actually, and they just all need to be pulled int
  • tweet about it