Data structures

OAuth dict

A dict to pass as the oauth argument to any function except ones in oauth module to use for authentication.

Dicts of this structure are returned by oauth.request_token() and oauth.access_token().

{
    'resource_owner_key': '66b3c0ce86e231fb0b014dcba5c51c47',
    'resource_owner_secret': 'e261a7e968c9156972e7b1dc677686c4',
}

User dict

A dict describing a GNU Social user. Returned by functions in accounts, blocks, users modules and also friendships.create() and friendships.destroy().

{
    'background_image': str, # URL to background image or False if none
    'backgroundcolor': str, # background color in hex or False if default
    'cover_photo': str, # URL to cover image or False if none
    'created_at': str, # the date of user registration
    'description': str, # user profile description or False if none
    'favourites_count': int, # the number of notices favorited by user
    'followers_count': int,
    'following': bool, # True if authenticating user is following the user
    'friends_count':int, # the number of users user is following
    'groups_count': int, # the number of group user is member of
    'id': int,
    'is_local': bool, # True if user is from server_url
    'is_sandboxed': bool,
    'is_silenced': bool,
    'linkcolor': str, # link color in hex or False if default
    'location': str, # user's location or False if none
    'name': str, # full name associated with the profile
    'notifications': bool, # True if authenticating user is getting
                            # notifications from user
    'ostatus_uri': str, # URL to user profile
    'profile_background_color':str, # same as backgroundcolor
    'profile_banner_url': str, # same as cover_photo
    'profile_image_url': str, # URL to 48x48 avatar image
    'profile_image_url_https': str. # same as profile_image_url, but with
                                    # HTTPS
    'profile_image_url_original': str, # URL to avatar image in original
                                        # resolution
    'profile_image_url_profile_size': str, # URL to 96x96 avatar image
    'profile_link_color': str, # same as linkcolor
    'protected': bool,
    'rights': # a dict of what user can do
    {
        'delete_others_notice': bool,
        'delete_user': bool,
        'sandbox': bool,
        'silence': bool
    },
    'screen_name': str, # user's handle
    'status': dict, # user's latest status
    'statuses_count': int,
    'statusnet_blocking': bool,
    'statusnet_profile_url': str,
    'time_zone': str,
    'url': str, # URL associated with the profile or False if none
    'utc_offset': str
}

Status dict

{
    'attachments':
    [
        {
            'height': str,
            'id': str,
            'large_thumb_url': str,
            'mimetype': str,
            'oembed': bool,
            'size': str, # size of attacment in kilobytes
            'thumb_url': str,
            'url': str,
            'version': str,
            'width': str
        }
    ],
    'attentions':
    [
        {
            'fullname': str,
            'id': int,
            'ostatus_uri': str,
            'profileurl': str,
            'screen_name': str
        }
    ],
    'created_at': str,
    'external_url': str,
    'fave_num': int, # number of users favorited the notice
    'favorited': bool, # True if favorited by authenticated user
    'geo': str,
    'id': int,
    'in_reply_to_ostatus_uri': str,
    'in_reply_to_profileurl': str,
    'in_reply_to_screen_name': str,
    'in_reply_to_status_id': str,
    'in_reply_to_user_id': int,
    'is_local': bool,
    'is_post_verb': bool,
    'repeat_num': int,
    'repeated': bool, # True if repeated by authenticated user
    'repeated_id': int,
    'retweeted_status': dict, # repeated status dict
    'source': str,
    'statusnet_conversation_id': int,
    'statusnet_html': str, # HTML contents of the notice
    'statusnet_in_groups': bool,
    'text': str, # plain text contents of the notice
    'truncated': bool,
    'uri': str,
    'user': dict # user dict
}

Group dict

{
    'admin_count': int,
    'blocked': bool,
    'created': str,
    'description': str,
    'fullname': str,
    'homepage': str,
    'homepage_logo': str,
    'id': int.
    'location': str,
    'member': bool,
    'member_count': int,
    'mini_logo': str,
    'modified': str,
    'nickname': str,
    'original_logo': str,
    'stream_logo': str,
    'url': str
}

Relationship dict

{
    'relationship':
    {
        'source':
        {
            'blocking': bool, # True if source user is blocking target user
            'followed_by': bool, # True if source user is followed by
                                 # target user
            'following': bool, # True if source user is following target
                               # user
            'id': int,
            'notifications_enabled': bool, # If notifications about target
                                           # user are enabled for source
                                           # user
            'screen_name': str
        },
        'target': dict # same as source
    }
}

Direct message dict

A dict returned by functions in direct_messages module.

{
    'relationship':
    {
        'source':
        {
            'blocking': bool, # True if source user is blocking target user
            'followed_by': bool, # True if source user is followed by
                                 # target user
            'following': bool, # True if source user is following target
                               # user
            'id': int,
            'notifications_enabled': bool, # If notifications about target
                                           # user are enabled for source
                                           # user
            'screen_name': str
        },
        'target': dict # same as source
    }
}

Config dict

A dict describing configuration of a GNU Social instance. Returned by config.config().

{
    'attachments':
    {
        'file_quota': int, # maximum size of attachment in bytes
        'uploads': bool # True if users are allowed to upload files
    },
    'group':
    {
        'desclimit': int
    },
    'integration':
    {
        'source': str
    },
    'license':
    {
        'image': str,
        'owner': str,
        'title': str,
        'type': str,
        'url': str
    },
    'nickname':
    {
        'featured': list
    },
    'notice':
    {
        'contentlimit': int
    },
    'profile':
    {
        'biolimit': int
    },
    'site':
    {
        'broughtby': str,
        'broughtbyurl': str,
        'closed': bool,
        'email': str,
        'fancy': str,
        'inviteonly': bool,
        'language': str,
        'logo': str,
        'name': str,
        'path': str,
        'private': bool,
        'server': str,
        'ssl': str,
        'sslserver': str,
        'textlimit': str,
        'theme': str,
        'timezone': str
    },
    'throttle':
    {
        'count': int,
        'enabled': bool,
        'timespan': int
    },
    'url':
    {
        'maxnoticelength': int,
        'maxurllength': int
    },
    'xmpp':
    {
        'enabled': bool,
        'port': int,
        'server': str,
        'user': str
    }
}

ActivityStream dict

A dict returned by functions in activity_streams module.

{
  'generator': str, # string describing the server software
  'totalItems': int,
  'title': str, # string describing the result dict
  'links':
  [
      {
          'rel': 'alternate',
          'type': 'text/html',
          'url': str # URL with corresponding content
      }
  ],
  'items':
  [
      {
          'actor':
          {
              'displayName': str,
              'id': str, # URL to profile
              'image':
              {
                  'height': int,
                  'rel': 'avatar',
                  'type': str, # MIME type
                  'url': str,
                  'width': int
              },
              'objectType': 'person',
              'portablecontacts_net':
              {
                  'displayName': str,
                  'note': str, # user profile description
                  'preferredUsername': str, # screen name
                  'urls':
                  [
                      {
                          'primary': 'true',
                          'type': 'homepage',
                          'value': str, # URL to the homepage
                      }
                  ]
              },
              'status_net':
              {
                  'avatarLinks':
                  [
                      {
                          'height': int,
                          'rel': 'avatar',
                          'type': str, # MIME type
                          'url': str,
                          'width': int
                      }
                  ],
                  'profile_info':
                  {
                      'local_id': str, # ID of the user on their home server
                  }
              },
              'summary': str, # user profile description
              'url': str,
          },
          'content': str, # status in HTML
          'generator':
          {
              'id': str, # Example: 'tag:gs.smuglo.li,2016-11-16:noticeId=1028155:objectType=comment'
              'objectType': 'application',
              'status_net':
              {
                  'source_code': 'ostatus'
              }
          },
          'id': str, #
          'object':
          {
              'content': str, # status in HTML
              'id': str, # Example: 'tag:gs.smuglo.li,2016-11-16:noticeId=1028155:objectType=comment'
              'inReplyTo':
              {
                  'id': str, # Example: 'tag:gs.smuglo.li,2016-11-16:noticeId=1028155:objectType=comment'
                  'objectType': 'note',
                  'url': str,
              },
              'objectType': 'comment',
              'status_net':
              {
                  'notice_id': int,
              },
              'url': str,
          },
          'provider':
          {
              'displayName': str,
              'objectType': 'service',
              'url': str,
          },
          'published': str, # Example: '2016-11-16T20:42:18+00:00',
          'status_net':
          {
              'conversation': str, # Example:tag:social.heldscal.la,2016-11-15:objectType=thread:nonce=c53d340f4850ca73 ,
              'notice_info':
              {
                  'local_id': str,
                  'source': 'ostatus'
              }
          },
          'to': # users, to whom the reply is addressed
          [
              {
                  'id': str, # URL to profile
                  'objectType': 'http://activitystrea.ms/schema/1.0/person'
              },
              {
                  'id': 'http://activityschema.org/collection/public',
                  'objectType': 'http://activitystrea.ms/schema/1.0/collection'
              }
          ],
          'url': str,
          'verb': str, # Example: 'post'
      }
  ]
}