Difference between revisions of "Bot directories and files"

From Apibot
Jump to: navigation, search
(first part of the code tree)
 
m (without sigmods)
 
(3 intermediate revisions by the same user not shown)
Line 13: Line 13:
 
       mainmodule/    - the API mainmodule
 
       mainmodule/    - the API mainmodule
  
       mains/        - implementation of the core of the API backend
+
       common/        - implementation of the core of the API backend
  
 
       modules/      - the Modules (first) level of the API backend
 
       modules/      - the Modules (first) level of the API backend
Line 35: Line 35:
 
       actions/      - the Actions (second) level of the Web backend
 
       actions/      - the Actions (second) level of the Web backend
  
       mains/        - implementation of the core of the Web backend
+
       common/        - implementation of the core of the Web backend
  
 
       modules/      - the Modules (first) level of the Web backend
 
       modules/      - the Modules (first) level of the Web backend
Line 41: Line 41:
 
       tasks/        - the Tasks part of the third level of the Web backend
 
       tasks/        - the Tasks part of the third level of the Web backend
  
   data/
+
   data/             - data objects
  
   mains/
+
   core/             - the core common objects
  
   queries/
+
   queries/           - backend-independent queries
  
   tasks/
+
   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
 +
 
 +
    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)
 
</pre>
 
</pre>

Latest revision as of 22:06, 10 November 2014

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

    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)