No description
| config | ||
| firefox | ||
| foxyproxy | ||
| types/proxy | ||
| CHANGELOG.md | ||
| DOCUMENTATION.md | ||
| firefox.png | ||
| foxyproxy.png | ||
| install.txt | ||
| README.md | ||
| tree.html | ||
- Summary
- [tutorial v1.1_190] A variable name that conflict with a known the variable's attribute "type" (diff)
[tutorial v1.1_200] Variable calculation with propertyerror
Read the tutorial "Variable calculation with propertyerror" in the documentation
Screenshot
Clone and install
To test this tutorial, you need to download this repository and install Rougail:
git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
. venv_rougail/bin/activate
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml
Then switch to the tutorial page:
git switch --detach v1.1_200
Structure
.
├── firefox
│ ├── 00-proxy.yml
│ ├── 10-manual.yml
│ ├── 20-manual.yml
│ ├── 30-auto.yml
│ ├── 40-no_proxy.yml
│ ├── 50-prompt_authentication.yml
│ ├── 55-proxy_dns_socks5.yml
│ └── 60-dns_over_https.yml
├── foxyproxy
│ └── 00-foxyproxy.yml
└── types
└── proxy
└── 00-type.yml
Contents of the foxyproxy/00-foxyproxy.yml file
%YAML 1.2
---
version: 1.1
proxies:
description: Proxy configuration
_type: leadership
title:
description: Title or Description
mandatory: false
type:
description: Proxy Type
choices:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
- PAC URL
- WPAD
- System (use system settings)
- Direct (no proxy)
default: Direct (no proxy)
color:
description: Color
regexp: ^#(?:[0-9a-f]{3}){1,2}$
default:
jinja: >-
#{%- for i in range(6) -%}{{- '0123456789abcdef' | random -}}{%- endfor -%}
description: random color value
auto_save: true
address:
description: IP address, DNS name, server name
type: domainname
params:
allow_ip: true
allow_without_dot: true
default:
description: copy HTTP address if proxy is not "Manual"
variable: firefox.manual.http_proxy.address
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
port:
description: Port
type: port
default:
description: copy HTTP port if proxy is not "Manual"
variable: firefox.manual.http_proxy.port
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
url:
description: URL
type: web_address
default:
description: copy HTTP address if proxy is "Auto"
variable: firefox.auto
propertyerror: false
disabled:
jinja: |-
{{ _.type not in ['PAC URL', 'WPAD'] }}
return_type: boolean
description: |-
if type is not in:
- PAC URL
- WPAD
...
Let's generate the documentation
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc
Let's generate the changelog
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml
User datas
Example 1
config/01/config.yml
---
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml
Note
Caption:
- Variable
- Default value
Variables:
- 📂 firefox (Firefox)
- 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
- 📂 dns_over_https (DNS over HTTPS)
- 📓 enable_dns_over_https (Enable DNS over HTTPS): false
- 📂 foxyproxy (FoxyProxy)
- 📂 proxies (Proxy configuration): []
Example 2
config/02/config.yml
---
foxyproxy:
proxies:
- title: My company
type: HTTP
color: '#66cc66'
address: proxy.company.net
port: 8080
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml
Note
Caption:
- Variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📂 firefox (Firefox)
- 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
- 📂 dns_over_https (DNS over HTTPS)
- 📓 enable_dns_over_https (Enable DNS over HTTPS): false
- 📂 foxyproxy (FoxyProxy)
- 📂 proxies (Proxy configuration)
- 📂 title (Title or Description)
- 📓 title (Title or Description): My company ← loaded from the YAML file "config/02/config.yml"
- 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" (⏳ Direct (no proxy))
- 📓 color (Color): #66cc66 ← loaded from the YAML file "config/02/config.yml"
- 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
- 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
- 📂 title (Title or Description)
- 📂 proxies (Proxy configuration)
Example 3
config/03/config.yml
---
firefox:
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
port: 3128
use_for_https: false
https_proxy:
address: https.proxy.net
foxyproxy:
proxies:
- title: My company
type: HTTP
color: '#66cc66'
Output
rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml
Note
Caption:
- Variable
- Default value
- Modified value
- (⏳ Original default value)
Variables:
- 📂 firefox (Firefox)
- 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/03/config.yml" (⏳ No proxy)
- 📂 manual (Manual proxy configuration)
- 📂 http_proxy (HTTP Proxy)
- 📓 address (HTTP proxy address): http.proxy.net ← loaded from the YAML file "config/03/config.yml"
- 📓 port (HTTP proxy port): 3128 ← loaded from the YAML file "config/03/config.yml" (⏳ 8080)
- 📓 use_for_https (Also use this proxy for HTTPS): false ← loaded from the YAML file "config/03/config.yml" (⏳ true)
- 📂 https_proxy (HTTPS Proxy)
- 📓 address (HTTPS proxy address): https.proxy.net ← loaded from the YAML file "config/03/config.yml" (⏳ http.proxy.net)
- 📓 port (HTTPS proxy port): 3128
- 📂 socks_proxy (SOCKS Proxy)
- 📓 address (SOCKS proxy address): http.proxy.net
- 📓 port (SOCKS proxy port): 3128
- 📓 version (SOCKS host version used by proxy): v5
- 📂 http_proxy (HTTP Proxy)
- 📓 no_proxy (Address for which proxy will be desactivated): []
- 📓 prompt_authentication (Prompt for authentication if password is saved): true
- 📓 proxy_dns_socks5 (Use proxy DNS when using SOCKS v5): false
- 📂 dns_over_https (DNS over HTTPS)
- 📓 enable_dns_over_https (Enable DNS over HTTPS): false
- 📂 foxyproxy (FoxyProxy)
- 📂 proxies (Proxy configuration)
- 📂 title (Title or Description)
- 📓 title (Title or Description): My company ← loaded from the YAML file "config/03/config.yml"
- 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" (⏳ Direct (no proxy))
- 📓 color (Color): #66cc66 ← loaded from the YAML file "config/03/config.yml"
- 📓 address (IP address, DNS name, server name): http.proxy.net
- 📓 port (Port): 3128
- 📂 title (Title or Description)
- 📂 proxies (Proxy configuration)