Fix extractor for channel community cursor

このコミットが含まれているのは:
Omar Roth 2019-10-27 21:44:17 -04:00
コミット c58841100a
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: B8254FB7EC3D37F2
2個のファイルの変更16行の追加4行の削除

長すぎる行があるためファイル差分は表示されません

ファイルの表示

@ -808,11 +808,23 @@ def produce_channel_community_continuation(ucid, cursor)
end
def extract_channel_community_cursor(continuation)
cursor = URI.decode_www_form(continuation)
object = URI.decode_www_form(continuation)
.try { |i| Base64.decode(i) }
.try { |i| IO::Memory.new(i) }
.try { |i| Protodec::Any.parse(i) }
.try { |i| Protodec::Any.cast_json(i["80226972:0:embedded"]["3:1:base64"].as_h) }
.try { |i| i["80226972:0:embedded"]["3:1:base64"].as_h }
if object["53:2:embedded"]?.try &.["3:0:embedded"]?
object["53:2:embedded"]["3:0:embedded"]["2:0:string"] = object["53:2:embedded"]["3:0:embedded"]
.try { |i| i["2:0:base64"].as_h }
.try { |i| Protodec::Any.cast_json(i) }
.try { |i| Protodec::Any.from_json(i) }
.try { |i| Base64.urlsafe_encode(i, padding: false) }
object["53:2:embedded"]["3:0:embedded"].as_h.delete("2:0:base64")
end
cursor = Protodec::Any.cast_json(object)
.try { |i| Protodec::Any.from_json(i) }
.try { |i| Base64.urlsafe_encode(i) }