Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
-- fbmemget.lua: download Facebook structures like feeds and comments into memory.
-- Idea: It doesn't make sense to save these structures in the disk cache
-- without processing, because they contain ".paging.next" fields that become
-- invalid very quickly - so we load things into memory, and then glue their
-- parts.
--
-- This file:
-- http://angg.twu.net/fbcache/fbmemget.lua
-- http://angg.twu.net/fbcache/fbmemget.lua.html
--  (find-angg        "fbcache/fbmemget.lua")
--
-- (find-es "facebook" "download-all-posts-in-group")

require "fbcurl" -- (find-fbcache "fbcurl.lua")
require "fbpp"   -- (find-fbcache "fbpp.lua")

fbmem = {}
fbmemget0 = function (query)
    local f = (query:match"^https?:") and fbcurl0 or fbcurl
    local o = f(query)
    fbmem[query] = o
    return o
  end
fbmemget = function (query)
    if fbmem[query] then return fbmem[query] end
    return fbmemget0(query)
  end
fbmemgetn = function (query, n, gnxt)
    local o = fbmemget(query)
    local A = {o}
    gnxt = gnxt or function (o) return o and o.paging and o.paging.next end
    while true do
      if #A == n then break end
      local next = gnxt(o)
      if next then
        o = fbmemget(next)
        table.insert(A, o)
      else
        break
      end
    end
    return A
  end

fbglue = function (A)
    local B = {}
    for i=1,#A do
      for j=1,#(A[i].data) do
        table.insert(B, A[i].data[j])
      end
    end
    if B[#B] == "[]" then B[#B] = nil end
    return B
  end


fbmemget_feed = function (query, n)
    return fbmemgetn(query, n)
  end

fbmemget_feed_glued = function (query)
    local A = fbmemget_feed(query)
    local B = {}
    for i=1,#A do
      for j=1,#(A[i].data) do
        table.insert(B, A[i].data[j])
      end
    end
    if B[#B] == "[]" then B[#B] = nil end
    return B
  end

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "fbmemget.lua"
query = "672137799470276/feed"
n = 2
A =        fbmemgetn(query, n)
B = fbglue(fbmemgetn(query, n))

require "fbcache3" -- (find-fbcache "fbcache3.lua")
pp(A)
pp(B)
for i,S in ipairs(B) do print(type(S)) end
for i,S in ipairs(B) do PP(keys(S)) end
for i,S in ipairs(B) do PP(sorted(keys(S))) end
for i,S in ipairs(B) do print(S.id) end
for i,S in ipairs(B) do print(S.id, S.updated_time); fbget(S.id) end

-- https://developers.facebook.com/docs/graph-api/reference/user
require "fbnameid" -- (find-fbcache "fbnameid.lua")
nameids_read()
= nameid "eduardo.ochs"
query = nameid "eduardo.ochs" .. "/feed"
query = "1523735650"
query = "1523735650/feed"
query = "1523735650_feed"
pp(fbmemget0(query))

https://graph.facebook.com/v2.5/1523735650
https://graph.facebook.com/v2.5/eduardo.ochs



pp(A)

fbget "672137799470276_672239192793470"
pp(fbget "672137799470276_672239192793470")


PP(keys(A[1]))
PP(keys(A[1].data))
PP(keys(A[2].data))
PP(keys(A[3].data))
PP(keys(A[4].data))
PP(keys(A[5].data))
PP(keys(A[6].data))
pp(A[1].data[1])
pp(A[1].data[1].updated_time)
pp(A[1].data[2].updated_time)
pp(A[1].data[3].updated_time)

local 

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "fbmemget.lua"
query = "100002199205236/feed"
n = 2
A =        fbmemgetn(query, n)
B = fbglue(fbmemgetn(query, n))
pp(fbcurl(query))

--]]


-- Local Variables:
-- coding: raw-text-unix
-- End: