Bot directories and files

From Apibot
Revision as of 22:05, 10 November 2014 by Grigor Gatchev (talk | contribs) (fix)
Jump to: navigation, search

The Apibot source code has the following directory structure:

core/                - the Apibot core

  backends/          - implementations of backends

    _generic/        - abstract classes, potentially instantiated by every backend

    api/             - implementation of the API backend

      actions/       - the Actions (second) level of the API backend

      mainmodule/    - the API mainmodule

      common/         - implementation of the core of the API backend

      modules/       - the Modules (first) level of the API backend

      pagesetmodule/ - the API pagesetmodule

      queries/       - the Queries part of the third level of the backend

      querymodules/  - the Querymodules extensions to the Query module from the API backend first level

        lists/       - the List type Querymodules

        meta/        - the Meta type Querymodules

        properties/  - the Property type Querymodules

      tasks/         - the Tasks part of the third level of the API backend

    web/             - implementation of the Web backend

      actions/       - the Actions (second) level of the Web backend

      common/         - implementation of the core of the Web backend

      modules/       - the Modules (first) level of the Web backend

      tasks/         - the Tasks part of the third level of the Web backend

  data/              - data objects

  core/             - the core common objects

  queries/           - backend-independent queries

  tasks/             - backend-independent tasks

extensions/          - a placeholder for installing Apibot extensions

interfaces/          - the Apibot interfaces

  bridge/            - the Bridge interface

  line/              - the Assembly line interface

    common/          - Assembly line interface common files

    feeders/         - Line feeders

      db/            - database based feeders

      file_records/  - file records based feeders

      info/          - wiki / user info based feeders

      misc/          - feeders that belong to no other group

      query/         - wiki query based feeders

        generator/   - generator query based feeders

        list/        - list query based feeders

        meta/        - meta query based feeders

        property/    - page property query based feeders

    fetchers/        - Line fetchers

      _auto/         - autofetchers (will fetch a wiki object on need)

      misc/          - fetchers that belong to no other group

      wiki/          - fetchers for wiki objects (pages, users etc)

    filters/         - Line filters

      _checks/       - implementations of different checking mechanisms (used internally)

      dir_entry/     - filtering directory entries (files, subdirectories...) by their properties

      general/       - filtering wiki data etc. objects by their properties

        _specified_property/ - by an explicitly specified property

        action/      - by Action property

        anon/        - by Anon flag (eg. page revisions)

        bot/         - by Bot flag (eg. page revisions)

        comment/     - by Comment (eg. page revisions)

        logaction/   - by Logaction (eg. logevents)

        logid/       - by Logid (eg. logevents)

        logtype/     - by Logtype (eg. logevents)

        minor/       - by Minor flag (eg. page revisions)

        new/         - by New (page) flag (eg. page revisions)

        newlen/      - by Newlen size (eg. page revisions)

        ns/          - by Ns code (eg. pages by namespace)

        old_revid/   - by Old_Revid (eg. page revisions)

        oldlen/      - by Oldlen size (eg. page revisions)

        pageid/      - by Pageid (eg. pages)

        patrolled/   - by Patrolled flag (eg. recentchanges)

        rcid/        - by Rcid (eg. recentchanges)

        revid/       - by Revid (eg. page revisions)

        size/        - by size (eg. page revisions)

        timestamp/   - by timestamp (eg. page revisions, recentchanges...)

        title/       - by title (eg. pages, recentchanges...)

        type/        - by type (eg. recentchanges)

        user/        - by user (eg. page revisions)

      misc/          - filters that belong to no other group

      page/          - filters specialized for pages

        _specified_property/ - by an explicitly specified property

        comment/     - by comment content, size etc.

        new/         - by New (has only one revision) flag

        pageid/      - by pageid

        parentid/    - by parentid

        redirect/    - by redirect flag

        revid/       - by current revision revid

        size/        - by current revision size

        text/        - by text content, size etc

        timestamp/   - by current revision timestamp

        title/       - by title

        user/        - by current revision author (user)

      sort/          - doesn't weed out signals, but sort them

        general/     - by the entire data element (probably needs extending further)

        wiki/        - by wiki properties (like pageid, revid, size etc)

      user/          - filters specialized for users

        _specified_property/ - by an explicitly specified property

        blockedby/   - by who blocked this user (if blocked)

        blockexpiry/ - by timestamp of the block expiration

        blockreason/ - by the reason for the blocking

        editcount/   - by the count of his/her edits

        groups/      - by the groups the user belongs to

        implicitgroups/ - by the groups the user implicitly belongs to

        name/        - by user name

        registration/ - by the user registration timestamp

        userid/      - by user Id

    sigmods/         - Line signal modifiers

      data/          - that modify signal data (limited - that's what are workers for)

        block/       - that modify the data block as a whole

        element/     - that modify the data element

      params/        - that modify the signal metadata (parameters)

        groups/      - ... the parameters groups

        params/      - ... the separate parameters

          from_data/ - ... set them from data

          general/   - ... do general operations with them (set, delete, copy, rename...)

          math/      - ... do some simple math operations

          misc/      - ... do other modifications

          string/    - ... do some string operations

          to_data/   - ... set data from them

    workers/         - Line workers

      edit/          - do page editing

      misc/          - do other work

      title/         - perform title-related operations (eg. prepare for moving the page)

    writers/         - Line writers

      db/            - ... to database

      debug/         - ... to stdout, for debugging purposes

      file/          - ... to a file

      wiki/          - ... to the wiki (most wiki changes, eg. block an user, are also here)