json twitter扩展推文lenght x2实验

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json twitter扩展推文lenght x2实验相关的知识,希望对你有一定的参考价值。

*.pyc
default:
	@python __main__.py

.PHONY: default
git@gist.github.com:39b0479d97405650cf825b39be82046d.git
#!/usr/bin/env python
# coding: utf-8
from pprint import pprint
import json
import io
import sys
"""
int, hext
unichr

"""


def pp(data):
    pprint(data, indent=2, width=50)


def __test():

    chars = ['abcdefghijklmnopqrstuvwxyz'
             'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
             'çıöşü'
             'ÇİÖŞÜ'
             '.,?!:;_+-=/*'
             '`~@#$%^&*(){}[]'
             '/\\<>'
             ]
    charmap = dict()

    # total = 0
    # for a in set(chars[0]):
    #   for b in set(chars[0]):
    #     charmap[ ord(a) + ord(b) ] = unichr(ord(a) + ord(b))

    N = 8
    for a in xrange(100, pow(2, N)):
        for b in xrange(100, pow(2, N)):
            charmap[ord(unichr(a + b))
                    ] = unichr(ord(unichr(a)) + ord(unichr(b)))

    pp(charmap)
    # with open('charmap.json', 'w') as fp:
    #   json.dump(charmap, fp, ensure_ascii=False, indent=2, sort_keys=True)
    # print charmap[242],

    longstr = 'ahmed şeref güneysu? AHMED ŞEREF GÜNEYSU?!'

    shortstr = ''
    for i in range((longstr.__len__()) - 1):
        chunk = longstr[i:i + 2]


def chunks():
  __chunks = []
  chars = ['abcdefghijklmnopqrstuvwxyz'
         'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
         'çıöşü'
         'ÇİÖŞÜ'
         '.,?!:;_+-=/*'
         '`~@#$%^&*(){}[]'
         '/\\<>'
         ]
  for i in chars[0]:
    for j in chars[0]:
      chunk = '{0}{1}'.format(i, j)
      __chunks.append(chunk)

  return __chunks


def charmap():
    cmap = dict()
    i = 0

    for chunk in chunks()[:56]:
      i += 1
      try:
        assert encode(chunk) not in cmap
      except AssertionError:
        print i, chunk, decode(cmap, encode(chunk))
        raise

      cmap[encode(chunk)] = chunk
    return cmap


def encode(chunk):
    A = ord(chunk[0]) * 3
    B = ord(chunk[1]) * 5
    return ord(unichr( 10 * A + 3 * B + B/A + A/B) ) 


def decode(map, s):
    return map.get(ord(unichr(s)), '?')


def main():

    cmap = charmap()
    pp(cmap)

    longstr = 'ahmed şeref güneysu? AHMED ŞEREF GÜNEYSU?!'

    for i in range((longstr.__len__()) - 1):
        chunk = longstr[i:i + 2]
        print chunk, decode(cmap, encode(chunk))

    # sys.exit()

    # cmap = dict()
    # cmap[encode('ah')] = 'ah'
    # cmap[encode('me')] = 'me'
    # cmap[encode('d ')] = 'd '

    # print decode(cmap, u'É')
    # print decode(cmap, u'Ò')

if __name__ == '__main__':
    main()
{
  "66": "!!", 
  "68": "!#", 
  "69": "!$", 
  "70": "%!", 
  "71": "!&", 
  "72": "%#", 
  "73": "%$", 
  "74": ")!", 
  "75": "%&", 
  "76": ")#", 
  "77": ")$", 
  "78": "-!", 
  "79": ")&", 
  "80": "-#", 
  "81": "-$", 
  "82": "-%", 
  "83": "-&", 
  "84": ")+", 
  "85": "-(", 
  "86": "-)", 
  "87": "-*", 
  "88": "-+", 
  "89": "-,", 
  "90": "--", 
  "91": "-.", 
  "92": "-/", 
  "93": "!<", 
  "94": "=!", 
  "95": "%:", 
  "96": "=#", 
  "97": "=$", 
  "98": "A!", 
  "99": "=&", 
  "100": "A#", 
  "101": "A$", 
  "102": "E!", 
  "103": "A&", 
  "104": "E#", 
  "105": "E$", 
  "106": "I!", 
  "107": "E&", 
  "108": "I#", 
  "109": "I$", 
  "110": "M!", 
  "111": "I&", 
  "112": "M#", 
  "113": "M$", 
  "114": "Q!", 
  "115": "M&", 
  "116": "Q#", 
  "117": "Q$", 
  "118": "U!", 
  "119": "Q&", 
  "120": "U#", 
  "121": "U$", 
  "122": "Y!", 
  "123": "U&", 
  "124": "Y#", 
  "125": "Y$", 
  "126": "]!", 
  "127": "Y&", 
  "128": "]#", 
  "129": "]$", 
  "130": "a!", 
  "131": "]&", 
  "132": "a#", 
  "133": "a$", 
  "134": "e!", 
  "135": "a&", 
  "136": "e#", 
  "137": "e$", 
  "138": "i!", 
  "139": "e&", 
  "140": "i#", 
  "141": "i$", 
  "142": "m!", 
  "143": "i&", 
  "144": "m#", 
  "145": "m$", 
  "146": "q!", 
  "147": "m&", 
  "148": "q#", 
  "149": "q$", 
  "150": "u!", 
  "151": "q&", 
  "152": "u#", 
  "153": "u$", 
  "154": "y!", 
  "155": "u&", 
  "156": "y#", 
  "157": "y$", 
  "158": "}!", 
  "159": "y&", 
  "160": "}#", 
  "161": "}$", 
  "162": "}%", 
  "163": "}&", 
  "164": "y+", 
  "165": "}(", 
  "166": "})", 
  "167": "}*", 
  "168": "}+", 
  "169": "},", 
  "170": "}-", 
  "171": "}.", 
  "172": "}/", 
  "173": "q<", 
  "174": "q=", 
  "175": "u:", 
  "176": "u;", 
  "177": "u<", 
  "178": "u=", 
  "179": "y:", 
  "180": "y;", 
  "181": "y<", 
  "182": "y=", 
  "183": "}:", 
  "184": "};", 
  "185": "}<", 
  "186": "}=", 
  "187": "}>", 
  "188": "}?", 
  "189": "}@", 
  "190": "}A", 
  "191": "}B", 
  "192": "}C", 
  "193": "}D", 
  "194": "}E", 
  "195": "}F", 
  "196": "}G", 
  "197": "}H", 
  "198": "}I", 
  "199": "}J", 
  "200": "}K", 
  "201": "}L", 
  "202": "}M", 
  "203": "}N", 
  "204": "}O", 
  "205": "}P", 
  "206": "}Q", 
  "207": "}R", 
  "208": "}S", 
  "209": "}T", 
  "210": "}U", 
  "211": "}V", 
  "212": "}W", 
  "213": "}X", 
  "214": "}Y", 
  "215": "}Z", 
  "216": "}[", 
  "217": "}\\", 
  "218": "}]", 
  "219": "}^", 
  "220": "}_", 
  "221": "}`", 
  "222": "}a", 
  "223": "}b", 
  "224": "}c", 
  "225": "}d", 
  "226": "}e", 
  "227": "}f", 
  "228": "}g", 
  "229": "}h", 
  "230": "}i", 
  "231": "}j", 
  "232": "}k", 
  "233": "}l", 
  "234": "}m", 
  "235": "}n", 
  "236": "}o", 
  "237": "}p", 
  "238": "}q", 
  "239": "}r", 
  "240": "}s", 
  "241": "}t", 
  "242": "}u", 
  "243": "}v", 
  "244": "}w", 
  "245": "}x", 
  "246": "}y", 
  "247": "}z", 
  "248": "}{", 
  "249": "]�", 
  "250": "}}", 
  "251": "}~", 
  "252": "u�", 
  "253": "a�", 
  "254": "M�", 
  "255": "i�", 
  "256": "y�", 
  "257": "e�", 
  "258": "Q�", 
  "259": "m�", 
  "260": "}�", 
  "261": "i�", 
  "262": "U�", 
  "263": "q�", 
  "264": "i�", 
  "265": "m�", 
  "266": "Y�", 
  "267": "u�", 
  "268": "m�", 
  "269": "q�", 
  "270": "]�", 
  "271": "y�", 
  "272": "q�", 
  "273": "u�", 
  "274": "a�", 
  "275": "}�", 
  "276": "u�", 
  "277": "y�", 
  "278": "e�", 
  "279": "y�", 
  "280": "y�", 
  "281": "}�", 
  "282": "i�", 
  "283": "}�", 
  "284": "}�", 
  "285": "m�", 
  "286": "m�", 
  "287": "i�", 
  "288": "y�", 
  "289": "q�", 
  "290": "q�", 
  "291": "m�", 
  "292": "}�", 
  "293": "u�", 
  "294": "u�", 
  "295": "q�", 
  "296": "e�", 
  "297": "y�", 
  "298": "y�", 
  "299": "u�", 
  "300": "i�", 
  "301": "}�", 
  "302": "}�", 
  "303": "y�", 
  "304": "m�", 
  "305": "u�", 
  "306": "m�", 
  "307": "}�", 
  "308": "q�", 
  "309": "y�", 
  "310": "q�", 
  "311": "r�", 
  "312": "u�", 
  "313": "}�", 
  "314": "u�", 
  "315": "v�", 
  "316": "y�", 
  "317": "y�", 
  "318": "y�", 
  "319": "z�", 
  "320": "}�", 
  "321": "}�", 
  "322": "}�", 
  "323": "~�", 
  "325": "��", 
  "326": "��", 
  "327": "��", 
  "330": "Ç", 
  "331": "ć", 
  "332": "��", 
  "333": "��", 
  "334": "��", 
  "335": "��", 
  "336": "��", 
  "338": "��", 
  "340": "��", 
  "341": "��", 
  "343": "��", 
  "344": "��", 
  "345": "��", 
  "346": "��", 
  "347": "��", 
  "349": "��", 
  "351": "��", 
  "352": "Ĝ", 
  "353": "��", 
  "354": "��", 
  "355": "��", 
  "356": "ş", 
  "358": "��", 
  "359": "��", 
  "362": "ç", 
  "363": "ħ", 
  "364": "��", 
  "365": "��", 
  "370": "��", 
  "371": "��", 
  "372": "��", 
  "373": "Ű", 
  "374": "ű", 
  "376": "��", 
  "377": "��", 
  "378": "��", 
  "379": "��", 
  "383": "��", 
  "384": "ļ", 
  "385": "ż", 
  "390": "��", 
  "391": "��", 
  "392": "��", 
  "393": "��", 
  "394": "��"
}

以上是关于json twitter扩展推文lenght x2实验的主要内容,如果未能解决你的问题,请参考以下文章

Twitter隐藏新功能:可自动汇总连续推文

备份你的Twitter推文

使用 NSJSONSerialization 解析 twitter 搜索 json 数据

Twitter获取搜索推文API不适用于哈希标签

以 JSON 格式获取 Twitter 订阅源,无需身份验证

Twitter 流式处理脚本在推文的位置字段上抛出一个 keyerror