FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

WikiRobots

Robots are intrinsically dangerous as they can automatically do a lot of damage. Use with extreme care!

Overview

Repetitive tasks can be automated using robots or bots, i.e. software programs operating on the wiki by themselves.

The natural and most commonly used robots for wiki sites are provided by MediaWiki, under the package name Pywikibot. See Manual:Pywikibot for the full information.

In a nutshell, Pywikibot is a collection of Python scripts able to use the native wiki API to act on wiki sites. To see the API list for the FreeCAD wiki, visit http://www.freecadweb.org/wiki/api.php

In order to use Pywikibot, you need to:

  1. install the Pywikibot package
  2. configure Pywikibot to work on the FreeCAD Wiki
  3. launch the scripts you need for the task at hand

There is a wealth of information on how to install, configure and use Pywikibot. However, please be aware that this information, although useful, can be misleading, since it mixes instructions related to two different Pywikibot codebases, and different versions of the Pywikibot scripts collection.

In the following, you will find the basic instructions to set up and use Pywikibot on the FreeCAD wiki. This will allow you to perform the most common tasks. For advanced usage, refer to the Manual:Pywikibot, and to the Python source code.

Installation

Go to http://tools.wmflabs.org/pywikibot/ and download package/pywikipedia/core.zip (the project is also under github, gerrit, etc. but this is a simple way to get a full self-contained package).

Unzip the content in your preferred directory.

Unless you want to install the libraries into your Python libs, you are done (if you still want to install them, check the file INSTALL in the base directory).

Pywikibot works with Python 2.6 and 2.7 with no issues. Python 3 has been not tested so far with FreeCAD wiki works as well.

Configuration

You must save the following Python code as a file with the name user-config.py in the base directory where you unzipped package/pywikipedia/core.zip (to be clear, in the same directory where you already find a file called user-config.py.sample).

# -*- coding: cp437  -*-
family = 'freecadwiki'
mylang = 'en'
usernames['freecadwiki']['en'] = u'<<yourWikiUserName>>'
#usernames['freecadwiki']['freecadwiki'] = u'<<yourWikiUserName>>'
console_encoding = 'cp437'

In the above code:

  • replace \<> with your Wiki user name
  • replace cp437 with your console_encoding. To find out what is your console encoding, for Windows and Linux, launch the Python interpreter, enter {{SystemInput|import sys}} followed by {{SystemInput|print sys.stdout.encoding}}. Python will write your {{SystemOutput|console_encoding}} on the screen.

Then you must save the following Python code as a file with the name freecadwiki_family.py under the sub-directory /pywikibot/families (together with the other family_xxx.py files).

# -*- coding: utf-8  -*-


__version__ = '$Id: 7f3891c3bbbfbd69c0b005de953514803d783d92 $'


from pywikibot import family



# The MediaWiki family
# user-config.py: usernames['mediawiki']['mediawiki'] = 'User name'
class Family(family.WikimediaFamily):
    def __init__(self):
        super(Family, self).__init__()
        self.name = 'freecadwiki'


self.langs = {
            'en': 'www.freecadweb.org',
        }


def scriptpath(self, code):
        return 'wiki'


def path(self, code):
        return '/index.php' #The path of index.php, look at your wiki address. 

    def apipath(self, code):
        return '/api.php' #The path of api.php


def version(self, code):
        # Replace with the actual version being run on your wiki
        return '1.20.3'


def protocol(self, code):
        """
        Can be overridden to return 'https'. Other protocols are not supported.
        """
        return 'http'
        #return 'https' # My server uses https

Usage

You are now all set to launch the Pywikibot scripts. The scripts themselves are contained in the /scripts subdirectory, from which you can know the names.

To launch the scripts, open a shell and move to the base directory (the installation one, NOT the /scripts subdirectory), and write

{{SystemInput|python pwb.py <>.py -<>}}

where of course you replace \<> with the name of the script you are interested in, and \<> with the parameter(s) required for the given script.

To have a description of the usage and parameters of any script, simply use the -help parameter. For instance, to have a description of the replace.py script (one of the most useful), type

{{SystemInput|python pwb.py replace.py -help}}

There is another very useful parameter, valid for all the scripts, called -simulate, that allows you to test commands without harming the Wiki. Use it, before going \'live\'.

Examples

This command will log into the wiki

{{SystemInput|pwb.py login.py}}

This command will print a list of all the pages containing a link to SourceForge

{{SystemInput|pwb.py listpages.py -weblink:sourceforge.net}}

This command will replace all the links to the old SourceForge Forum with a link to the new freecad.org-hosted Forum

{{SystemInput|pwb.py replace.py -weblink:sourceforge.net/apps/phpbb/free-cad "sourceforge.net/apps/phpbb/free-cad" "forum.freecad.org"}}

This command will print a list of all the pages containing the word \'PartDesign\', starting with the page titled \"2d Drafting Module\" and going on alphabetically

{{SystemInput|pwb.py listpages.py -start:"2d Drafting Module" -grep:PartDesign}}

This command will replace all the secure links to the old SourceForge Forum with a link to the new freecad.org-hosted Forum in the translated pages

{{SystemInput|pwb.py replace.py -start:Translations:! "https://sourceforge.net/apps/phpbb/free-cad" "http://forum.freecad.org"}}

FreeCAD Wiki Related Commands

Count all pages that a specific wiki templates is used in

{{SystemInput|python3 pwb.py templatecount -count GuiCommand}}

List all pages that a specific wiki templates is used in

{{SystemInput|python3 pwb.py templatecount -list GuiCommand}}

Replace a string in all the pages listed in the Arch category

{{SystemInput|python3 pwb.py replace.py -cat:Arch}}


⏵ documentation index > Administration > Developer > WikiRobots

This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/WikiRobots.md

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub