diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..1bd4946
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,37 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+---
+
+### Describe the bug
+
+A clear and concise description of what the bug is.
+
+### To Reproduce
+
+Steps to reproduce the behavior:
+
+1. Import '...'
+2. Call '....'
+3. See error
+
+### Expected behavior
+
+A clear and concise description of what you expected to happen.
+
+### Screenshots
+
+If applicable, add screenshots to help explain your problem.
+
+### Desktop (please complete the following information)
+
+- OS: `[e.g. linux]`
+- Python version(s): `[e.g. 3.12]`
+- Dependencies versions: `[e.g. pydantic 2.6.4]`
+
+### Additional context
+
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml
new file mode 100644
index 0000000..4d3b612
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yaml
@@ -0,0 +1,2 @@
+---
+blank_issues_enabled: false
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..61af533
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,23 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: enhancement
+assignees: ''
+---
+
+### Is your feature request related to a problem? Please describe
+
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+### Describe the solution you'd like
+
+A clear and concise description of what you want to happen.
+
+### Describe alternatives you've considered
+
+A clear and concise description of any alternative solutions or features you've considered.
+
+### Additional context
+
+Add any other context or screenshots about the feature request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..b932a9c
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,18 @@
+### What?
+
+Explain with one or more sentences what this change is doing.
+
+### Have you done?
+
+- [ ] Code tests
+- [ ] Update documentation
+- [ ] Update [changelog](https://github.com/MAIF/arta/blob/main/CHANGELOG.md)
+
+### Details to be checked: (optional)
+
+If needed, add some details here in order to verify the change (e.g., how to test).
+
+### Linked issues: (optional)
+
+- Close ...
+- Close ...
diff --git a/.github/workflows/ci-cd-mkdocs.yml b/.github/workflows/ci-cd-mkdocs.yml
new file mode 100644
index 0000000..372c445
--- /dev/null
+++ b/.github/workflows/ci-cd-mkdocs.yml
@@ -0,0 +1,52 @@
+---
+ name: Documentation CI/CD
+ on:
+ push:
+ branches:
+ - main
+ tags:
+ - '*' # Later: \b[0-9]\.[0-9]+\.[0-9]+[ab]?[0-9]?\b
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ branches:
+ - main
+
+ jobs:
+ build:
+ if: ${{ github.actor != 'dependabot[bot]' }}
+ name: Build doc
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.11'
+ - name: Install package with optional dependency 'doc'
+ run: |
+ python -m pip install --upgrade pip
+ pip install .[doc]
+ - name: Run MkDocs build
+ working-directory: ./docs
+ run: mkdocs build
+ - name: Upload Pages artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: "docs/site/"
+ publish:
+ if: success() && startsWith(github.ref, 'refs/tags')
+ name: Publish doc
+ needs: build
+ permissions:
+ pages: write
+ id-token: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e1d0d98
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,73 @@
+# Archives and compressed files
+*.7z
+*.7Z
+*.gz
+*.GZ
+*.rar
+*.RAR
+*.tar
+*.TAR
+*.tar.*
+*.TAR.*
+*.tgz
+*.TGZ
+*.zip
+*.ZIP
+
+# Packages
+*.egg
+*.egg-info/
+*.jar
+*.war
+*.ear
+
+# Executable binary files
+*.exe
+*.EXE
+*.msi
+*.MSI
+*.dll
+*.DLL
+
+# Log files
+*.log
+*.LOG
+*.log.*
+*.LOG.*
+logs/*
+LOGS/*
+
+# Build directories
+build/
+target/*
+*/target/*
+cache/
+
+# Crash files
+hs_err_pid*
+
+# Jupyter Notebook checkpoints
+.ipynb_checkpoints
+
+# Configuration files
+.htaccess
+
+# macOS specific files
+*.DS_Store
+
+# Data files
+*.csv
+data/
+
+# Compiled Python files
+*.pyc
+
+# Environments
+.env
+
+# Development tools
+.vscode
+.coverage
+
+# mkdocs documentation
+*/site
\ No newline at end of file
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..023c8bf
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,22 @@
+default_language_version:
+ python: python3
+repos:
+- repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.8.0
+ hooks:
+ - id: ruff
+ args: [ --fix ]
+ - id: ruff-format
+- repo: https://github.com/pre-commit/mirrors-mypy
+ rev: v1.13.0
+ hooks:
+ - id: mypy
+ args: [--config-file=pyproject.toml]
+ files: src
+ additional_dependencies: [types-pytz,types-requests,types-python-dateutil]
+- repo: https://github.com/compilerla/conventional-pre-commit
+ rev: v3.6.0
+ hooks:
+ - id: conventional-pre-commit
+ stages: [commit-msg]
+ args: []
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..5d60a79
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,3 @@
+# Changelog
+
+## TODO
diff --git a/LICENSE.md b/LICENSE.md
deleted file mode 100644
index d9a10c0..0000000
--- a/LICENSE.md
+++ /dev/null
@@ -1,176 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fb31878
--- /dev/null
+++ b/README.md
@@ -0,0 +1,67 @@
+# Meteole
+
+**Meteole** provides utilities to facilitate data retrieval from the Météo-France APIs using Python. It specifically supports the AROME and ARPEGE forecast models and vigilance bulletins.
+
+## 🛠 Installation
+
+```python
+pip install meteole
+```
+
+## 🕐 Quickstart
+
+### Obtain an API token or key
+
+Create an account on [the Météo-France API portal](https://portail-api.meteofrance.fr/). Next, subscribe to the desired APIs (Arome, Arpege, etc.). Retrieve the API token (or key) by going to “Mes APIs” and then “Générer token”.
+
+### 🌧️ AROME, ARPEGE
+
+The flagship weather forecasting models of Météo-France are accessible via the Météo-France APIs.
+
+| Characteristics | AROME | ARPEGE |
+|------------------|----------------------|----------------------|
+| Resolution | 1.3 km | 10 km |
+| Update Frequency | Every 3 hours | Every 6 hours |
+| Forecast Range | Up to 51 hours | Up to 114 hours |
+
+```python
+from meteole import arome
+
+arome_client = arome.AromeForecast(application_id=APPLICATION_ID) # APPLICATION_ID found on portail.meteo-france.Fr
+
+# let's look at the latest wind gusts
+indicator = 'V_COMPONENT_OF_WIND_GUST__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND'
+
+# or check any other indicator in the list
+print(arome_client.indicators)
+
+# get the latest MeteoFrance forecasts concerning this indicator
+# all default parameters are printed to make sure you are in control
+df_arome = arome_client.get_coverage(indicator)
+
+# default height doesn't suit you? change it easily
+df_arome = arome_client.get_coverage(indicator, height=10)
+```
+
+### ⚠️ VIGILANCE METEO FRANCE
+
+Meteo France offers a vigilance bulletin that provides nationwide predictions of potential weather risks.
+
+For data usage, access the predicted phenomena to trigger modeling based on the forecasts.
+
+```python
+from meteole import Vigilance
+
+client = Vigilance(application_id=APPLICATION_ID)
+
+df_phenomenon, df_timelaps = client.get_phenomenon() # pour accéder aux phénomènes prévus
+
+textes_vigilance = client.get_textes_vigilance() # pour accéder aux bulletins de vigilance
+
+client.get_vignette() # pour afficher les vignettes
+```
+
+
+
+To have more documentation from MeteoFrance in Vigilance Bulletin :
+- [Meteo France Documentation](https://donneespubliques.meteofrance.fr/?fond=produit&id_produit=305&id_rubrique=50)
diff --git a/assets/token_api.png b/assets/token_api.png
new file mode 100644
index 0000000..a06ef5b
Binary files /dev/null and b/assets/token_api.png differ
diff --git a/assets/vignette_exemple.png b/assets/vignette_exemple.png
new file mode 100644
index 0000000..18cfd56
Binary files /dev/null and b/assets/vignette_exemple.png differ
diff --git a/docs/mkdocs.yaml b/docs/mkdocs.yaml
new file mode 100644
index 0000000..62c7a9d
--- /dev/null
+++ b/docs/mkdocs.yaml
@@ -0,0 +1,84 @@
+site_name: Meteole
+site_url: https://maif.github.io/meteole
+repo_url: https://github.com/MAIF/meteole
+repo_name: MAIF/meteole
+site_author: OSSbyMAIF Team
+docs_dir: pages
+theme:
+ name: 'material'
+ logo: assets/img/svg/meteole-fond-clair.svg
+ favicon: assets/img/svg/meteole-git.svg
+ palette:
+ # Palette toggle for automatic mode
+ - media: "(prefers-color-scheme)"
+ toggle:
+ icon: material/brightness-auto
+ name: Switch to light mode
+ primary: white
+ accent: red
+
+ # Palette toggle for light mode
+ - media: "(prefers-color-scheme: light)"
+ scheme: default
+ primary: white
+ accent: red
+ toggle:
+ icon: material/brightness-7
+ name: Switch to dark mode
+
+ # Palette toggle for dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: slate
+ primary: black
+ accent: red
+ toggle:
+ icon: material/brightness-4
+ name: Switch to system preference
+ font:
+ text: 'Roboto'
+ code: 'Roboto Mono'
+ language: en
+ features:
+ - content.tabs.link
+ - content.code.annotate
+ - content.code.copy
+ - content.code.select
+ - announce.dismiss
+ - navigation.tabs
+ - search.highlight
+ - search.share
+markdown_extensions:
+ tables:
+ admonition:
+ pymdownx.details:
+# pymdownx.extra:
+ pymdownx.emoji:
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
+ pymdownx.tabbed:
+ alternate_style: true
+ pymdownx.highlight:
+ anchor_linenums: true
+ line_spans: __span
+ pygments_lang_class: true
+ use_pygments: true
+ linenums: true
+ pymdownx.inlinehilite:
+ pymdownx.snippets:
+ pymdownx.superfences:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:pymdownx.superfences.fence_code_format ''
+plugins:
+ - mkdocstrings
+ - search
+nav:
+ - Home:
+ - Welcome: home.md
+ - Why use Meteole?: why.md
+ - Installation: installation.md
+ - User Guide:
+ - How to: how_to.md
+extra_css:
+ - assets/css/mkdocs_extra.css
\ No newline at end of file
diff --git a/docs/pages/assets/css/mkdocs_extra.css b/docs/pages/assets/css/mkdocs_extra.css
new file mode 100644
index 0000000..c17ef77
--- /dev/null
+++ b/docs/pages/assets/css/mkdocs_extra.css
@@ -0,0 +1,17 @@
+:root {
+ --md-admonition-icon--beta: url('data:image/svg+xml;charset=utf-8,')
+}
+.md-typeset .admonition.beta,
+.md-typeset details.beta {
+ border-color: #CF363B;
+}
+.md-typeset .beta > .admonition-title,
+.md-typeset .beta > summary {
+ background-color: #CF363B;
+}
+.md-typeset .beta > .admonition-title::before,
+.md-typeset .beta > summary::before {
+ background-color: white;
+ -webkit-mask-image: var(--md-admonition-icon--beta);
+ mask-image: var(--md-admonition-icon--beta);
+}
\ No newline at end of file
diff --git a/docs/pages/assets/css/style.css b/docs/pages/assets/css/style.css
new file mode 100644
index 0000000..9065cd9
--- /dev/null
+++ b/docs/pages/assets/css/style.css
@@ -0,0 +1,314 @@
+body {
+ font-family: 'Arvo', serif;
+ background-color: #2E3031;
+}
+
+.otoColor {
+ background-color: #2596be;
+}
+
+a {
+ color: #2596be;
+ text-decoration: underline;
+}
+
+a:hover {
+ color: #FFF;
+}
+
+.home {
+ position: fixed;
+ z-index: 1001;
+ margin-left: 10px;
+ margin-top: 10px;
+}
+
+.home a {
+ color: #2E3031;
+}
+
+.home a:hover {
+ color: #af8900;
+}
+
+.tagN2 {
+ width: 20%;
+ display: block;
+ margin: 20px auto;
+}
+
+.contentN2 {
+ padding-top: 30px;
+}
+
+.contentN2 .col-md-6 {
+ padding-top: 70px;
+}
+
+.colDashRight {
+ border-right: 1px dashed #F2F2F2;
+ padding-right: 60px;
+}
+
+.titleOnLine {
+ color: #FFF;
+ font-size: 36px;
+ text-transform: uppercase;
+ padding-left: 0px;
+}
+
+.titleOnLine li {
+ list-style-type: none;
+}
+
+.titleOnLine li:nth-child(even) {
+ color: #2596be;
+}
+
+h1 {
+ font-size: 24px;
+}
+
+h2 {
+ color: #FFF;
+ font-size: 21px;
+ text-transform: uppercase;
+}
+
+.manifesto {
+ border: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 9000;
+}
+
+.intro {
+ font-family: 'Roboto', serif;
+ font-size: 18px;
+ color: #FFF;
+}
+
+.details {
+ font-family: 'Roboto', serif;
+ font-size: 14px;
+ font-weight: 300;
+ color: #fff;
+ margin-top: 40px;
+}
+
+.details ul {
+ padding-left: 20px
+}
+
+.more-details {
+ text-align: center;
+ color: #fff;
+ padding-left: 60px;
+}
+
+.more-details .pictoPortrait {
+ height: 50px;
+}
+
+.youtube_player{
+ margin-bottom: 20px;
+}
+
+.youtube_player {
+ position:relative;
+ padding-bottom:56.25%;
+ padding-top:30px;
+ height:0;
+ overflow:hidden;
+}
+
+.youtube_player iframe, .youtube_player object, .youtube_player embed {
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+}
+
+.youtube_player .tac_activate {
+ background: #2E3031;
+}
+
+.more-details .pictoPaysage {
+ margin-top: 20px;
+ width: 70px
+}
+
+.outer-circle {
+ height: 100px;
+ width: 100px;
+ position: relative;
+ border: 3px solid #2596be;
+ border-radius: 50%;
+ margin: auto;
+ margin-top: 50px;
+}
+
+.inner-circle {
+ position: absolute;
+ background: #2596be;
+ border-radius: 50%;
+ height: 90px;
+ width: 90px;
+ top: 50%;
+ left: 50%;
+ margin: -45px 0px 0px -45px;
+ color: #2E3031;
+}
+
+.inner-circle p {
+ margin-top: 40%;
+}
+
+.inner-circle--lowerText {
+ font-size: 13px;
+}
+
+.sidebar {
+ background: linear-gradient(90deg, #2596be 50%, #2E3031 50%);
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1000;
+ display: block;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border-right: none;
+}
+
+.sidebar-container {
+ display: flex;
+ height: 100%;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.sidebar-content {
+ flex-grow: 1;
+ padding-top: 20px;
+}
+
+.footer-content {
+ width: 300%;
+ margin-left: -100%;
+ overflow: hidden;
+ bottom: 0;
+}
+
+.footer-contentN2 {
+ position: relative;
+ width: 50%;
+ z-index: 1000;
+ margin-left: -5%;
+}
+
+@media screen and (max-width: 991px) {
+ .intro {
+ font-size: 16px;
+ }
+ .colDashRight {
+ border: none;
+ padding-right: 15px;
+ }
+ .titleOnLine {
+ font-size: 26px;
+ }
+ .titleOnLine li {
+ text-align: center;
+ }
+ .details li, .details {
+ list-style-type: none;
+ text-align: center;
+ }
+ .more-details {
+ padding-left: 15px;
+ }
+}
+
+@media screen and (max-width: 770px) {
+ .home {
+ position: absolute;
+ }
+ .home .fa-home {
+ font-size: 1.5em;
+ }
+ .sidebar-content {
+ width: 200px;
+ padding-left: 30px;
+ }
+ .contentN2 {
+ padding-left: 30px;
+ }
+ .sidebar-container {
+ flex-direction: column;
+ }
+ .sidebar {
+ background: linear-gradient(180deg, #2596be 50%, #2E3031 50%);
+ position: inherit;
+ }
+ .footer-contentN2 {
+ margin-left: 0px;
+ margin-top: 20px;
+ width: 100%;
+ background-color: #2596be;
+ }
+ .intro {
+ text-align: left;
+ }
+ .titleOnLine {
+ text-align: left;
+ }
+ .titleOnLine li {
+ display: inline-block;
+ }
+ .more-details {
+ text-align: left;
+ }
+ .contentCircle {
+ margin-right: 20px;
+ }
+ .tagN2 {
+ margin-top: 10px;
+ }
+ .titleOnLine li {
+ text-align: left;
+ }
+ .details li, .details {
+ text-align: left;
+ }
+ .details ul {
+ padding-left: 0px;
+ }
+ .outer-circle {
+ margin-left: 0px;
+ text-align: center;
+ }
+ .linkN2 {
+ padding-left: 20px;
+ }
+}
+
+@media screen and (max-width: 400px) {
+ .outer-circle {
+ height: 80px;
+ width: 80px;
+ }
+ .inner-circle {
+ height: 70px;
+ width: 70px;
+ margin: -35px 0px 0px -35px;
+ }
+ .inner-circle p {
+ font-size: 12px;
+ }
+ .inner-circle p.inner-circle--lowerText {
+ font-size: 10px;
+ }
+}
\ No newline at end of file
diff --git a/docs/pages/assets/img/contributing/meteole-clone.png b/docs/pages/assets/img/contributing/meteole-clone.png
new file mode 100644
index 0000000..7b2113d
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-clone.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-compare-pr.png b/docs/pages/assets/img/contributing/meteole-compare-pr.png
new file mode 100644
index 0000000..d1c755e
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-compare-pr.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-create-pr.png b/docs/pages/assets/img/contributing/meteole-create-pr.png
new file mode 100644
index 0000000..ba1dd67
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-create-pr.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-fork.png b/docs/pages/assets/img/contributing/meteole-fork.png
new file mode 100644
index 0000000..8ce4d99
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-fork.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-pr-branch.png b/docs/pages/assets/img/contributing/meteole-pr-branch.png
new file mode 100644
index 0000000..547243e
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-pr-branch.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-pr-description.png b/docs/pages/assets/img/contributing/meteole-pr-description.png
new file mode 100644
index 0000000..a31a969
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-pr-description.png differ
diff --git a/docs/pages/assets/img/contributing/meteole-pr.png b/docs/pages/assets/img/contributing/meteole-pr.png
new file mode 100644
index 0000000..ec91f26
Binary files /dev/null and b/docs/pages/assets/img/contributing/meteole-pr.png differ
diff --git a/docs/pages/assets/img/png/vignette_exemple.png b/docs/pages/assets/img/png/vignette_exemple.png
new file mode 100644
index 0000000..18cfd56
Binary files /dev/null and b/docs/pages/assets/img/png/vignette_exemple.png differ
diff --git a/docs/pages/assets/img/svg/configure.svg b/docs/pages/assets/img/svg/configure.svg
new file mode 100644
index 0000000..fcd6038
--- /dev/null
+++ b/docs/pages/assets/img/svg/configure.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/pages/assets/img/svg/etiquette.svg b/docs/pages/assets/img/svg/etiquette.svg
new file mode 100644
index 0000000..650e48c
--- /dev/null
+++ b/docs/pages/assets/img/svg/etiquette.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/pages/assets/img/svg/footer.svg b/docs/pages/assets/img/svg/footer.svg
new file mode 100644
index 0000000..0a9fab1
--- /dev/null
+++ b/docs/pages/assets/img/svg/footer.svg
@@ -0,0 +1,237 @@
+
+
+
+ Meteole provides a python wrapper around Météo-France APIs to facilitate models exploration and data retrieval. +
+Get weather data with two lines of code. +
+Painless deepdiving into weather model parameters.
+DOC
++ */ +#tarteaucitronRoot { + left: 0; + position: absolute; + right: 0; + top: 0; + width: 100%; +} + +#tarteaucitronRoot * { + box-sizing: initial; + color: #333; + font-family: sans-serif !important; + font-size: 14px; + line-height: normal; + vertical-align: initial; +} + +/*** + * Control panel + */ +#tarteaucitronBack { + background: #fff; + display: none; + height: 100%; + left: 0; + opacity: 0.7; + position: fixed; + top: 0; + width: 100%; + z-index: 2147483646; +} + +#tarteaucitron { + display: none; + max-height: 80%; + left: 50%; + margin: 0 auto 0 -430px; + padding: 0; + position: fixed; + top: 6%; + width: 860px; + z-index: 2147483647; +} + +#tarteaucitron .tarteaucitronBorder { + background: #fff; + border: 2px solid #333; + border-top: 0; + height: auto; + overflow: auto; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronClosePanelCookie, +#tarteaucitron #tarteaucitronClosePanel { + background: #333333; + color: #fff; + cursor: pointer; + font-size: 12px; + font-weight: 700; + text-decoration: none; + padding: 4px 0; + position: absolute; + right: 0; + text-align: center; + width: 70px; +} + +#tarteaucitron #tarteaucitronDisclaimer { + color: #555; + font-size: 12px; + margin: 15px auto 0; + width: 80%; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronHidden, +#tarteaucitron #tarteaucitronServices .tarteaucitronHidden { + background: rgba(51, 51, 51, 0.07); +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronHidden { + display: none; + position: relative; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle, +#tarteaucitron #tarteaucitronServices .tarteaucitronTitle, +#tarteaucitron #tarteaucitronInfo, +#tarteaucitron #tarteaucitronServices .tarteaucitronDetails { + background: #333; + color: #fff; + display: inline-block; + font-size: 14px; + font-weight: 700; + margin: 20px 0px 0px; + padding: 5px 20px; + text-align: left; + width: auto; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a, +#tarteaucitron #tarteaucitronServices .tarteaucitronTitle a { + color: #fff; + font-weight: 500; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a:hover, +#tarteaucitron #tarteaucitronServices .tarteaucitronTitle a:hover { + text-decoration: none !important; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a { + font-size: 22px; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronTitle a { + font-size: 14px; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle { + padding: 5px 10px; +} + +#tarteaucitron #tarteaucitronInfo, +#tarteaucitron #tarteaucitronServices .tarteaucitronDetails { + color: #fff; + display: none; + font-size: 12px; + font-weight: 500; + margin-top: 0; + max-width: 270px; + padding: 20px; + position: absolute; + z-index: 2147483647; +} + +#tarteaucitron #tarteaucitronInfo a { + color: #fff; + text-decoration: underline; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine:hover { + background: rgba(51, 51, 51, 0.2); +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine { + background: rgba(51, 51, 51, 0.1); + border-left: 5px solid transparent; + margin: 0; + overflow: hidden; + padding: 15px 5px; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine { + background: #333; + border: 3px solid #333; + border-left: 9px solid #333; + border-top: 5px solid #333; + margin-bottom: 0; + margin-top: 21px; + position: relative; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine:hover { + background: #333; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName { + margin-left: 15px; + margin-top: 2px; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName b { + color: #fff; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronAsk { + margin-top: 0px !important; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName { + display: inline-block; + float: left; + margin-left: 10px; + text-align: left; + width: 50%; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName a:hover { + text-decoration: underline; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk { + display: inline-block; + float: right; + margin: 7px 15px 0; + text-align: right; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow, +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronDeny, +.tac_activate .tarteaucitronAllow { + background: gray; + border-radius: 4px; + color: #fff; + cursor: pointer; + display: inline-block; + padding: 6px 10px; + text-align: center; + text-decoration: none; + width: auto; +} + +#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies { + color: #333; + font-size: 12px; +} + +/*** + * Big alert + */ +.tarteaucitronAlertBigTop { + top: 0; +} + +.tarteaucitronAlertBigBottom { + bottom: 0; +} + +#tarteaucitronAlertBig { + background: #333; + color: #fff; + display: none; + font-size: 15px !important; + left: 0; + padding: 5px 5%; + position: fixed; + text-align: center; + width: 90%; + box-sizing: content-box; + z-index: 2147483645; +} + +#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert, +#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b { + font: 15px verdana; + color: #fff; +} + +#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert b { + font-weight: 700; +} + +#tarteaucitronAlertBig #tarteaucitronCloseAlert, #tarteaucitronAlertBig #tarteaucitronPersonalize { + background: #008300; + color: #fff; + cursor: pointer; + display: inline-block; + font-size: 16px; + padding: 5px 10px; + text-decoration: none; + margin-left: 7px; +} + +#tarteaucitronAlertBig #tarteaucitronCloseAlert { + background: #fff; + color: #333; + font-size: 13px; + margin-bottom: 3px; + margin-left: 7px; + padding: 4px 10px; +} + +#tarteaucitronPercentage { + background: #0A0; + box-shadow: 0 0 2px #fff, 0 1px 2px #555; + height: 5px; + left: 0; + position: fixed; + width: 0; + z-index: 2147483644; +} + +/*** + * Small alert + */ +#tarteaucitronAlertSmall { + background: #333; + bottom: 0; + display: none; + padding: 0; + position: fixed; + right: 0; + text-align: center; + width: auto; + z-index: 2147483646; +} + +#tarteaucitronAlertSmall #tarteaucitronManager { + color: #fff; + cursor: pointer; + display: inline-block; + font-size: 11px !important; + padding: 8px 10px 8px; +} + +#tarteaucitronAlertSmall #tarteaucitronManager:hover { + background: rgba(255, 255, 255, 0.05); +} + +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot { + background-color: gray; + border-radius: 5px; + display: block; + height: 8px; + margin-bottom: 1px; + margin-top: 5px; + overflow: hidden; + width: 100%; +} + +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotGreen, +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotYellow, +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotRed { + display: block; + float: left; + height: 100%; + width: 0%; +} + +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotGreen { + background-color: #1B870B; +} + +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotYellow { + background-color: #FBDA26; +} + +#tarteaucitronAlertSmall #tarteaucitronManager #tarteaucitronDot #tarteaucitronDotRed { + background-color: #9C1A1A; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesNumber { + background: rgba(255, 255, 255, 0.2); + color: #fff; + cursor: pointer; + display: inline-block; + font-size: 30px; + padding: 0px 10px; + vertical-align: top; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesNumber:hover { + background: rgba(255, 255, 255, 0.3); +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer { + display: none; + max-height: 70%; + max-width: 500px; + position: fixed; + right: 0; + width: 100%; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList { + background: #fff; + border: 2px solid #333; + color: #333; + font-size: 11px; + height: auto; + overflow: auto; + text-align: left; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList b { + color: #333; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle { + background: #333; + margin-top: 21px; + padding: 13px 0 9px 13px; + text-align: left; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesTitle b { + color: #fff; + font-size: 16px; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain { + background: rgba(51, 51, 51, 0.1); + padding: 7px 5px 10px; + word-wrap: break-word; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain:hover { + background: rgba(51, 51, 51, 0.2); +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain a { + color: #333; + text-decoration: none; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft { + display: inline-block; + width: 50%; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListLeft a b { + color: darkred; +} + +#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronCookiesListMain .tarteaucitronCookiesListRight { + color: #333; + display: inline-block; + font-size: 11px; + margin-left: 10%; + vertical-align: top; + width: 30%; +} + +/*** + * Fallback activate link + */ +.tac_activate { + background: #333; + color: #fff; + display: table; + font-size: 12px; + height: 100%; + line-height: initial; + margin: auto; + text-align: center; + width: 100%; +} + +.tac_float { + display: table-cell; + text-align: center; + vertical-align: middle; +} + +.tac_activate .tac_float b { + color: #fff; +} + +.tac_activate .tac_float .tarteaucitronAllow { + background-color: #1B870B; + display: inline-block; +} + +/*** + * CSS for services + */ +ins.ferank-publicite, ins.adsbygoogle { + text-decoration: none; +} + +div.amazon_product { + height:240px; + width:120px; +} \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.cs.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.cs.js new file mode 100644 index 0000000..5878e51 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.cs.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Ahoj! Tato stránka je transparetní a umožňuje ti si přímo vybrat, jaké služby třetích stran chceš povolit.", + "adblock_call": "Pro úpravu osobních preferencí si, prosím, vypni adblock.", + "reload": "Načíst stránku znovu", + + "alertBigScroll": "Pokračováním ve scrollování,", + "alertBigClick": "Pokud pokračujete v brouzdání našich stránek,", + "alertBig": "povolujete všechny služby třetích stran.", + + "alertBigPrivacy": "Tato stránka využívá cookies a dává ti na výběr, co chceš aktivovat", + "alertSmall": "Spravovat služby", + "personalize": "Přizpůsobit", + "acceptAll": "OK, přijmout vše", + "close": "Zavřít", + + "all": "Nastavení všech služeb", + + "info": "Chrání tvé soukromí", + "disclaimer": "Povolením těchto služeb třetích stran, přijímáš jejich cookies, jež jsou nezbytné pro řádné fungování jejich technologií.", + "allow": "Povolit", + "deny": "Zamítnout", + "noCookie": "Tato služba nepoužívá cookies.", + "useCookie": "Tato služba může nainstalovat", + "useCookieCurrent": "Tato služba nainstalovala", + "useNoCookie": "Tato služba nenainstalovala žádné cookies.", + "more": "Dozvědět se více", + "source": "Zobrazit oficiální stránku", + "credit": "Správce cookies od tarteaucitron.js", + + "fallback": "je vypnutý.", + + "ads": { + "title": "Reklamní síť", + "details": "Prodejem reklamních ploch na této stránce mohou reklamní sítě vydělávat peníze." + }, + "analytic": { + "title": "Statistika návštěvnosti", + "details": "Služby pro analýzu návštěvníků slouží k vytvoření užitečných statistik návštěvnosti. Ty zase slouží ke zlepšení stránky." + }, + "social": { + "title": "Sociální sítě", + "details": "Sociální sítě mohou usnadnit práci se stránkou a pomáhají jí prosadit se pomocí sdílení." + }, + "video": { + "title": "Videa", + "details": "Video-hostingové služby pomáhají přidat na stránku bohaté mediální prvky." + }, + "comment": { + "title": "Komentáře", + "details": "Správce komentářů zajišťují vyplňování komentářů a bojují proti šíření spamu." + }, + "support": { + "title": "Podpora", + "details": "Služby podpory ti pomáhají spojit se s týmem stojícím za stránkou a umožňují ti vyjádřit se k jejím nedostatkům." + }, + "api": { + "title": "API", + "details": "API slouží k načtění skriptů: geolokace, vyhledávačů, překladů, ..." + }, + "other": { + "title": "Jiný", + "details": "Služby pro zobrazení webového obsahu." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.de.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.de.js new file mode 100644 index 0000000..9674de7 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.de.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Hallo! Diese Seite ist transparent und lässt Ihnen die Wahl der externen Services, die aktiviert werden dürfen.", + "adblock_call": "Bitte deaktivieren Sie Ihren 'Werbeblocker' um Konfigurieren zu können.", + "reload": "Seite neu laden", + + "alertBigScroll": "Durch die fortgesetzte blättern,", + "alertBigClick": "Wenn Sie diese Webseite benutzen,", + "alertBig": "stimmen Sie der Benutzung von externen Diensten zu", + + "alertBigPrivacy": "Diese Webseite verwendet 'Cookies' und ermöglicht dadurch Kontrolle, welche Dienste benutzt werden dürfen", + "alertSmall": "Service-Kontrolle", + "personalize": "Personalisieren", + "acceptAll": "OK, akzeptiere alles", + "close": "Beenden", + + "all": "Präferenz für alle Dienste", + + "info": "Schutz der Privatsphäre", + "disclaimer": "Wenn Sie diese Dienste nutzen, erlauben Sie deren 'Cookies' und Tracking-Funktionen, die zu ihrer ordnungsgemäßen Funktion notwendig sind.", + "allow": "Erlauben", + "deny": "Ablehnen", + "noCookie": "Dieser Dienst nutzt keine 'Cookies'.", + "useCookie": "Dieser Dienst kann installieren", + "useCookieCurrent": "Dieser Dienst hat installiert", + "useNoCookie": "Dieser Dienst hat keine 'Cookies' installiert.", + "more": "Weiter lesen", + "source": "Zur offiziellen Webseite", + "credit": "Cookies manager von tarteaucitron.js", + + "fallback": "ist deaktiviert.", + + "ads": { + "title": "Anzeigen Netzwerke", + "details": "Anzeigen Netzwerke können mit dem Verkauf von Werbeplatzierungen auf der Seite Einnahmen erhalten." + }, + "analytic": { + "title": "Besucher Zähldienste", + "details": "Die verwendeten Besucher Zähldienste generieren Statistiken die dabei helfen, die Seite zu verbessern." + }, + "social": { + "title": "Soziale Netzwerke", + "details": "Soziale Netzwerke können die Benutzbarkeit der Seite verbessern und ihren Bekanntheitsgrad erhöhen." + }, + "video": { + "title": "Videos", + "details": "Video Platformen erlauben Videoinhalte einzublenden und die Sichtbarkeit der Seite zu erhöhen." + }, + "comment": { + "title": "Kommentare", + "details": "Kommentar Manager erleichtern die Organisation von Kommentaren und helfen dabei Spam zu verhindern." + }, + "support": { + "title": "Support", + "details": "Support Dienste erlauben es die Urheber der Seite zu kontaktieren und sie zu verbessern." + }, + "api": { + "title": "APIs", + "details": "APIs werden benutzt um Skripte zu laden, wie: Geolokalisation, Suchmaschinen, Übersetzungen, ..." + }, + "other": { + "title": "Andere", + "details": "Dienste zum Anzeigen von Web-Inhalten." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.en.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.en.js new file mode 100644 index 0000000..60f409b --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.en.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Hello! This site is transparent and lets you chose the 3rd party services you want to allow.", + "adblock_call": "Please disable your adblocker to start customizing.", + "reload": "Refresh the page", + + "alertBigScroll": "By continuing to scroll,", + "alertBigClick": "If you continue to browse this website,", + "alertBig": "you are allowing all third-party services", + + "alertBigPrivacy": "This site uses cookies and gives you control over what you want to activate", + "alertSmall": "Manage services", + "personalize": "Personalize", + "acceptAll": "OK, accept all", + "close": "Close", + + "all": "Preference for all services", + + "info": "Protecting your privacy", + "disclaimer": "By allowing these third party services, you accept their cookies and the use of tracking technologies necessary for their proper functioning.", + "allow": "Allow", + "deny": "Deny", + "noCookie": "This service does not use cookie.", + "useCookie": "This service can install", + "useCookieCurrent": "This service has installed", + "useNoCookie": "This service has not installed any cookie.", + "more": "Read more", + "source": "View the official website", + "credit": "Cookies manager by tarteaucitron.js", + + "fallback": "is disabled.", + + "ads": { + "title": "Advertising network", + "details": "Ad networks can generate revenue by selling advertising space on the site." + }, + "analytic": { + "title": "Audience measurement", + "details": "The audience measurement services used to generate useful statistics attendance to improve the site." + }, + "social": { + "title": "Social networks", + "details": "Social networks can improve the usability of the site and help to promote it via the shares." + }, + "video": { + "title": "Videos", + "details": "Video sharing services help to add rich media on the site and increase its visibility." + }, + "comment": { + "title": "Comments", + "details": "Comments managers facilitate the filing of comments and fight against spam." + }, + "support": { + "title": "Support", + "details": "Support services allow you to get in touch with the site team and help to improve it." + }, + "api": { + "title": "APIs", + "details": "APIs are used to load scripts: geolocation, search engines, translations, ..." + }, + "other": { + "title": "Other", + "details": "Services to display web content." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.es.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.es.js new file mode 100644 index 0000000..da3a91d --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.es.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Hola! Este sitio web es transparente y le da la opción de activar los servicios de terceros.", + "adblock_call": "Por favor deshabilite su AdBlocker para comenzar a personalizar.", + "reload": "Actualizar esta página", + + "alertBigScroll": "Al continuar para desplazarse,", + "alertBigClick": "Si continuas navegando por este sitio web,", + "alertBig": "estar permitiendo servicios terceros", + + "alertBigPrivacy": "Este sitio web usa cookies y te permite controlar lo que deseas activar", + "alertSmall": "Gestionar servicios", + "personalize": "Personalizar", + "acceptAll": "OK, aceptar todas", + "close": "Cerrar", + + "all": "Preference for all services", + + "info": "Protegiendo tu privacidad", + "disclaimer": "Aceptando estos servicios terceros, estas aceptando sus cookies y el uso de tecnologías de rastreo necesarias para su correcto funcionamiento.", + "allow": "Permitir", + "deny": "Denegar", + "noCookie": "Este servicio no usa cookie.", + "useCookie": "Este servicio puede instalar", + "useCookieCurrent": "Este servicio ha instalado", + "useNoCookie": "Este servicio no ha instalado ninguna cookie.", + "more": "Leer más", + "source": "Ver sitio web oficial", + "credit": "Gestor de cookies realizada por tarteaucitron.js", + + "fallback": "esta deshabilitado.", + + "ads": { + "title": "Red de publicidad", + "details": "Las redes publicitarias pueden generar ingresos mediante la venta de espacios publicitarios en el sitio." + }, + "analytic": { + "title": "Mediciión de audiencia", + "details": "Los servicios de medición de audiencia se usan para generar asistencia estadísticas útiles para mejorar el sitio." + }, + "social": { + "title": "Redes sociales", + "details": "Las redes sociales pueden aumentar la usabilidad del sitio web y ayudar a promoverlo a través de la contribución." + }, + "video": { + "title": "Videos", + "details": "Los servicios para compartir videos ayudan a añadir contenido enriquecido en el sitio web y aumentar su visibilidad." + }, + "comment": { + "title": "Comentarios", + "details": "El gestor de comentarios facilita la clasificación de comentarios y luchar contra spam." + }, + "support": { + "title": "Soporte", + "details": "Los servicios de soporte te permiten contactar con el sitio web y ayudar a mejorarlo." + }, + "api": { + "title": "APIs", + "details": "APIs se utilizan para cargar scripts: geolocalización, motor de búsqueda, traducciones, ..." + }, + "other": { + "title": "Otro", + "details": "Servicios para mostrar contenido web." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.fr.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.fr.js new file mode 100644 index 0000000..f86b3dd --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.fr.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Bonjour! Ce site joue la transparence et vous donne le choix des services tiers à activer.", + "adblock_call": "Merci de désactiver votre adblocker pour commencer la personnalisation.", + "reload": "Recharger la page", + + "alertBigScroll": "En continuant de défiler,", + "alertBigClick": "En poursuivant votre navigation,", + "alertBig": "vous acceptez l'utilisation de services tiers pouvant installer des cookies", + + "alertBigPrivacy": "Ce site utilise des cookies et vous donne le contrôle sur ce que vous souhaitez activer", + "alertSmall": "Gestion des services", + "acceptAll": "OK, tout accepter", + "personalize": "Personnaliser", + "close": "Fermer", + + "all": "Préférence pour tous les services", + + "info": "Protection de votre vie privée", + "disclaimer": "En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement.", + "allow": "Autoriser", + "deny": "Interdire", + "noCookie": "Ce service ne dépose aucun cookie.", + "useCookie": "Ce service peut déposer", + "useCookieCurrent": "Ce service a déposé", + "useNoCookie": "Ce service n'a déposé aucun cookie.", + "more": "En savoir plus", + "source": "Voir le site officiel", + "credit": "Gestion des cookies par tarteaucitron.js", + + "fallback": "est désactivé.", + + "ads": { + "title": "Régies publicitaires", + "details": "Les régies publicitaires permettent de générer des revenus en commercialisant les espaces publicitaires du site." + }, + "analytic": { + "title": "Mesure d'audience", + "details": "Les services de mesure d'audience permettent de générer des statistiques de fréquentation utiles à l'amélioration du site." + }, + "social": { + "title": "Réseaux sociaux", + "details": "Les réseaux sociaux permettent d'améliorer la convivialité du site et aident à sa promotion via les partages." + }, + "video": { + "title": "Vidéos", + "details": "Les services de partage de vidéo permettent d'enrichir le site de contenu multimédia et augmentent sa visibilité." + }, + "comment": { + "title": "Commentaires", + "details": "Les gestionnaires de commentaires facilitent le dépôt de vos commentaires et luttent contre le spam." + }, + "support": { + "title": "Support", + "details": "Les services de support vous permettent d'entrer en contact avec l'équipe du site et d'aider à son amélioration." + }, + "api": { + "title": "APIs", + "details": "Les APIs permettent de charger des scripts : géolocalisation, moteurs de recherche, traductions, ..." + }, + "other": { + "title": "Autre", + "details": "Services visant à afficher du contenu web." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.it.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.it.js new file mode 100644 index 0000000..fa211f4 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.it.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Benvenuto! Questo sito ti permette di attivare i servizi di terzi di tua scelta.", + "adblock_call": "Disabilita il tuo adblocker per iniziare la navigazione.", + "reload": "Aggiorna la pagina", + + "alertBigScroll": "Continuando a scorrere,", + "alertBigClick": "Continuando a navigare nel sito,", + "alertBig": "autorizzi l’utilizzo dei cookies inviati da domini di terze parti", + + "alertBigPrivacy": "Questo sito fa uso di cookies e ti consente di decidere se accettarli o rifiutarli", + "alertSmall": "Gestione dei servizi", + "acceptAll": "Ok, accetta tutto", + "personalize": "Personalizza", + "close": "Chiudi", + + "all": "Preferenze per tutti i servizi", + + "info": "Tutela della privacy", + "disclaimer": "Abilitando l'uso dei servizi di terze parti, accetti la ricezione dei cookies e l'uso delle tecnologie analitici necessarie al loro funzionamento.", + "allow": "Consenti", + "deny": "Blocca", + "noCookie": "Questo servizio non invia nessun cookie", + "useCookie": "Questo servizio puo' inviare", + "useCookieCurrent": "Questo servizio ha inviato", + "useNoCookie": "Questo servizio non ha inviato nessun cookie", + "more": "Saperne di più", + "source": "Vai al sito ufficiale", + "credit": "Gestione dei cookies da tarteaucitron.js", + + "fallback": "è disattivato", + + "ads": { + "title": "Regie pubblicitarie", + "details": "Le regie pubblicitarie producono redditi gestendo la commercializzazione degli spazi del sito dedicati alle campagne pubblicitarie" + }, + "analytic": { + "title": "Misura del pubblico", + "details": "I servizi di misura del pubblico permettono di raccogliere le statistiche utili al miglioramento del sito" + }, + "social": { + "title": "Reti sociali", + "details": "Le reti sociali permettono di migliorare l'aspetto conviviale del sito e di sviluppare la condivisione dei contenuti da parte degli utenti a fini promozionali." + }, + "video": { + "title": "Video", + "details": "I servizi di condivisione di video permettono di arricchire il sito di contenuti multimediali e di aumentare la sua visibilità" + }, + "comment": { + "title": "Commenti", + "details": "La gestione dei commenti utente aiuta a gestire la pubblicazione dei commenti e a lottare contro lo spamming" + }, + "support": { + "title": "Supporto", + "details": "I servizi di supporto ti consentono di contattare la team del sito e di contribuire al suo miglioramento" + }, + "api": { + "title": "API", + "details": "Le API permettono di implementare script diversi : geolocalizzazione, motori di ricerca, traduttori..." + }, + "other": { + "title": "Altro", + "details": "Servizi per visualizzare contenuti web." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pl.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pl.js new file mode 100644 index 0000000..31db3c6 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pl.js @@ -0,0 +1,66 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Witaj! Ta witryna oferuje przejrzystosc i daje mozliwosc wyboru aktywacji uslug zewnetrznych.", + "adblock_call": "Prosze wylaczyc adblocker aby rozpoczac dostosowanie do potrzeb uzytkownika.", + "reload": "Odswiez strone", + + "alertBigScroll": "Poprzez kontynuowanie przewijania,", + "alertBigClick": "Pozostajac na tej stronie", + "alertBig": "zgadzasz sie na korzystanie ze wszystkich zewnetrzynych uslug", + + "alertBigPrivacy": "Ta witryna używa plików cookie i pozwala kontrolować ich aktywacje", + "alertSmall": "Zarządzanie usługami", + "personalize": "Personalizacja", + "acceptAll": "OK, akceptuję wszystko", + "close": "zamknij", + + "all": "Preferencja dla wszystkich usług", + + "info": "Ochrona prywatności", + "disclaimer": "Zgadzajac sie na korzystanie z uslug zewnetrznych , akceptuje ich pliki cookies oraz wykorzystanie technologii niezbędnych do ich funkcjonowania.", + "allow": "Zezwalaj", + "deny": "Odmów", + "noCookie": "Ta usługa nie korzysta z plików cookie.", + "useCookie": "Ta usługa może zainstalować pliki cookie", + "useCookieCurrent": "Ta usługa zainstalowala plikie cookie", + "useNoCookie": "Ta usługa nie zainstalowala żadnego pliku cookie.", + "more": "Więcej informacji", + "source": "Zobacz oficjalną stronę internetowa", + "credit": "Cookies menadżer z tarteaucitron.js", + + "fallback": "jest nieaktywna.", + + "ads": { + "title": "Sieć reklamowa", + "details": "Sieci reklamowe mogą generować przychody ze sprzedaży powierzchni reklamowej na stronie." + }, + "analytic": { + "title": "Pomiar ogladalnosci", + "details": "Usługi pomiaru oglądalności wykorzystywane sa do generowania przydatnych statystyk potrzebnych w doskonaleniu strony." + }, + "social": { + "title": "Portale społecznościowe", + "details": "Sieci społecznościowe mogą poprawić użyteczność serwisu i pomóc w promocji za pośrednictwem propagacji strony." + }, + "video": { + "title": "Filmy", + "details": "Usługa udostępniania wideo pomoże dodać multimedia do strony i zwiększyć jej ogladalność." + }, + "comment": { + "title": "Komentarze", + "details": "Zarządzanie komentarzami ułatwia komentowanie i zwalcza spam." + }, + "support": { + "title": "Pomoc", + "details": "Usługa pomocy technicznej pozwala, skontaktować się z administratorem witryny i pomaga ją udoskonalić." + }, + "api": { + "title": "APIs", + "details": "APIs służą do ładowania skryptów: geolokalizacji, wyszukiwarek, tłumaczenia, ..." + }, + "other": { + "title": "Inny", + "details": "Usługi do wyświetlania treści internetowych." + } + +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pt.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pt.js new file mode 100644 index 0000000..239dcc6 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.pt.js @@ -0,0 +1,61 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Olá! Em uma açao de transparencia, este site lhe dá a opção de quais serviços terceiros deseje ativar.", + "adblock_call": "Por favor, desative seu bloqueador de publicidades para poder customizar.", + "reload": "Atualizar esta página", + + "alertBigScroll": "Ao continuar a rolar,", + "alertBigClick": "Se você continuar a navegaçao neste site,", + "alertBig": "você estará aceitando todos os serviços terceiros", + + "alertBigPrivacy": "Esse site utiliza cookies and lhe dá controle sobre o que você quer ativar", + "alertSmall": "Gerenciar serviços", + "personalize": "Personalizar", + "acceptAll": "OK, aceitar tudo", + "close": "Fechar", + "all": "Definições dos serviços", + "info": "Proteger sua privacidade", + "disclaimer": "Ao aceitar os serviços terceiros, você aceita o uso de cookies em conjunto de tecnologias de rastreamento que lhe são necessárias para funcionar", + "allow": "Autorizar", + "deny": "Recusar", + "noCookie": "Este serviço não usa cookies.", + "useCookie": "Este serviço pode instalar", + "useCookieCurrent": "Este serviço instalou", + "useNoCookie": "Este serviço não instalou nenhum cookie.", + "more": "Ler mais", + "source": "Ver o site oficial", + "credit": "Gerenciador de cookies por tarteaucitron.js", + "fallback": "está desativado.", + "ads": { + "title": "Rede de anúncios", + "details": "As redes de anúncios podem gerar receitas com a venda de espaço publicitário no site." + }, + "analytic": { + "title": "Medição de audiência", + "details": "Serviços de medição de audiência usados para gerar estatísticas no intuito de melhorar o site." + }, + "social": { + "title": "Rede sociais", + "details": "Rede sociais podem ameliorar o utilização do site e ajudar a promove-lo via compartilhamentos." + }, + "video": { + "title": "Vídeos", + "details": "Video sharing services help to add rich media on the site and increase its visibility." + }, + "comment": { + "title": "Comentários", + "details": "Gerenciadores de comentários facilitam o sistema de comentários e lutam contra o spam." + }, + "support": { + "title": "Suporte", + "details": "Serviços de suporte lhe ajudam a entrar em contato com a equipe de suporte." + }, + "api": { + "title": "APIs", + "details": "APIs são usadas para carregar scripts: geolocalização, motores de pesquisa, traduções, ..." + }, + "other": { + "title": "De outros", + "details": "Serviços para exibir conteúdo da web." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.ru.js b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.ru.js new file mode 100644 index 0000000..54c9651 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/lang/tarteaucitron.ru.js @@ -0,0 +1,65 @@ +/*global tarteaucitron */ +tarteaucitron.lang = { + "adblock": "Привет! Этот сайт совершенно открытый и позволяет вам выбрать сервисы третьих лиц, которым вы хотите дать доступ.", + "adblock_call": "Пожалуйста дезактивируйте АдБлокер чтобы начать настройку.", + "reload": "Перезагрузите страницу", + + "alertBigScroll": "Продолжая прокрутки", + "alertBigClick": "Если вы продолжаете использовать сайт", + "alertBig": "вы позволяете сервисы третьих лиц", + + "alertBigPrivacy": "Этот сайт использует кукис и позволяет вам контролировать сервисы которые вы хотите активировать", + "alertSmall": "Настройка сервисов", + "personalize": "Персонализировать", + "acceptAll": "Ок, все активировать", + "close": "Закрыть", + + "all": "Преференция всем сервисам", + + "info": "Защитить вашу конфиденциальность", + "disclaimer": "Активирование сервисов третьих лиц позволяет использование их кукис и технолоний отслеживания необходимых для их функционирования", + "allow": "Позролить", + "deny": "Не позволить", + "noCookie": "Этот сервис не использует кукис.", + "useCookie": "Этот сервис может быть инсталирован", + "useCookieCurrent": "Этот сервис инсталирован", + "useNoCookie": "Этот сервис не использует кукис.", + "more": "Подробнее", + "source": "Посетите официальный сайт", + "credit": "Кукис манаджер tarteaucitron.js", + + "fallback": "Деактивирован.", + + "ads": { + "title": "Рекламная сеть", + "details": "Мы позволяем вам аренду нашей рекламной сети." + }, + "analytic": { + "title": "Измерение аудиенции", + "details": "Измерение аудиенции сайта для статистики помогают улучшить предлагаемый сервис." + }, + "social": { + "title": "Социальная сеть", + "details": "Социальная сеть сайтов помогает улучшить предлагаемый сервис через обмен информации." + }, + "video": { + "title": "Видео", + "details": "Обмен видео информации позволяет улучшить сервис и увеличит траффик сайта." + }, + "comment": { + "title": "Комментарии", + "details": "Манаджер комментариев позволяет обмен информации и борьбу со спамом." + }, + "support": { + "title": "Помощь", + "details": "Помощь позволяет вам контактировать напрямую сайт манаджер и улучшить предлагаемый сервис." + }, + "api": { + "title": "АПИ", + "details": "АПИ используются для загрузки скриптов; геолокация, поисковый мотор и переводы..." + }, + "other": { + "title": "Другие", + "details": "Службы для отображения веб-контента." + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/tarteaucitron.js b/docs/pages/assets/js/tarteaucitron/tarteaucitron.js new file mode 100644 index 0000000..57f818e --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/tarteaucitron.js @@ -0,0 +1,1265 @@ +/*jslint browser: true, evil: true */ + +// define correct path for files inclusion +var scripts = document.getElementsByTagName('script'), + path = scripts[scripts.length - 1].src.split('?')[0], + cdn = path.split('/').slice(0, -1).join('/') + '/', + alreadyLaunch = (alreadyLaunch === undefined) ? 0 : alreadyLaunch, + tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage, + tarteaucitronProLoadServices, + tarteaucitronNoAdBlocker = false; + +var tarteaucitron = { + "version": 323, + "cdn": cdn, + "user": {}, + "lang": {}, + "services": {}, + "added": [], + "idprocessed": [], + "state": [], + "launch": [], + "parameters": {}, + "isAjax": false, + "reloadThePage": false, + "init": function (params) { + "use strict"; + var origOpen; + + tarteaucitron.parameters = params; + if (alreadyLaunch === 0) { + alreadyLaunch = 1; + if (window.addEventListener) { + window.addEventListener("load", function () { + tarteaucitron.load(); + tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) { + elem.addEventListener("click", function (event) { + tarteaucitron.userInterface.openPanel(); + event.preventDefault(); + }, false); + }, true); + }, false); + window.addEventListener("scroll", function () { + var scrollPos = window.pageYOffset || document.documentElement.scrollTop, + heightPosition; + if (document.getElementById('tarteaucitronAlertBig') !== null && !tarteaucitron.highPrivacy) { + if (document.getElementById('tarteaucitronAlertBig').style.display === 'block') { + heightPosition = document.getElementById('tarteaucitronAlertBig').offsetHeight + 'px'; + + if (scrollPos > (screen.height * 2)) { + tarteaucitron.userInterface.respondAll(true); + } else if (scrollPos > (screen.height / 2)) { + document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '' + tarteaucitron.lang.alertBigScroll + ' ' + tarteaucitron.lang.alertBig; + } + + if (tarteaucitron.orientation === 'top') { + document.getElementById('tarteaucitronPercentage').style.top = heightPosition; + } else { + document.getElementById('tarteaucitronPercentage').style.bottom = heightPosition; + } + document.getElementById('tarteaucitronPercentage').style.width = ((100 / (screen.height * 2)) * scrollPos) + '%'; + } + } + }, false); + window.addEventListener("keydown", function (evt) { + if (evt.keyCode === 27) { + tarteaucitron.userInterface.closePanel(); + } + }, false); + window.addEventListener("hashchange", function () { + if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') { + tarteaucitron.userInterface.openPanel(); + } + }, false); + window.addEventListener("resize", function () { + if (document.getElementById('tarteaucitron') !== null) { + if (document.getElementById('tarteaucitron').style.display === 'block') { + tarteaucitron.userInterface.jsSizing('main'); + } + } + + if (document.getElementById('tarteaucitronCookiesListContainer') !== null) { + if (document.getElementById('tarteaucitronCookiesListContainer').style.display === 'block') { + tarteaucitron.userInterface.jsSizing('cookie'); + } + } + }, false); + } else { + window.attachEvent("onload", function () { + tarteaucitron.load(); + tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) { + elem.attachEvent("onclick", function (event) { + tarteaucitron.userInterface.openPanel(); + event.preventDefault(); + }); + }, true); + }); + window.attachEvent("onscroll", function () { + var scrollPos = window.pageYOffset || document.documentElement.scrollTop, + heightPosition; + if (document.getElementById('tarteaucitronAlertBig') !== null && !tarteaucitron.highPrivacy) { + if (document.getElementById('tarteaucitronAlertBig').style.display === 'block') { + heightPosition = document.getElementById('tarteaucitronAlertBig').offsetHeight + 'px'; + + if (scrollPos > (screen.height * 2)) { + tarteaucitron.userInterface.respondAll(true); + } else if (scrollPos > (screen.height / 2)) { + document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '' + tarteaucitron.lang.alertBigScroll + ' ' + tarteaucitron.lang.alertBig; + } + if (tarteaucitron.orientation === 'top') { + document.getElementById('tarteaucitronPercentage').style.top = heightPosition; + } else { + document.getElementById('tarteaucitronPercentage').style.bottom = heightPosition; + } + document.getElementById('tarteaucitronPercentage').style.width = ((100 / (screen.height * 2)) * scrollPos) + '%'; + } + } + }); + window.attachEvent("onkeydown", function (evt) { + if (evt.keyCode === 27) { + tarteaucitron.userInterface.closePanel(); + } + }); + window.attachEvent("onhashchange", function () { + if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') { + tarteaucitron.userInterface.openPanel(); + } + }); + window.attachEvent("onresize", function () { + if (document.getElementById('tarteaucitron') !== null) { + if (document.getElementById('tarteaucitron').style.display === 'block') { + tarteaucitron.userInterface.jsSizing('main'); + } + } + + if (document.getElementById('tarteaucitronCookiesListContainer') !== null) { + if (document.getElementById('tarteaucitronCookiesListContainer').style.display === 'block') { + tarteaucitron.userInterface.jsSizing('cookie'); + } + } + }); + } + + if (typeof XMLHttpRequest !== 'undefined') { + origOpen = XMLHttpRequest.prototype.open; + XMLHttpRequest.prototype.open = function () { + + if (window.addEventListener) { + this.addEventListener("load", function () { + if (typeof tarteaucitronProLoadServices === 'function') { + tarteaucitronProLoadServices(); + } + }, false); + } else if (typeof this.attachEvent !== 'undefined') { + this.attachEvent("onload", function () { + if (typeof tarteaucitronProLoadServices === 'function') { + tarteaucitronProLoadServices(); + } + }); + } else { + if (typeof tarteaucitronProLoadServices === 'function') { + setTimeout(tarteaucitronProLoadServices, 1000); + } + } + + try { + origOpen.apply(this, arguments); + } catch (err) {} + }; + } + } + }, + "load": function () { + "use strict"; + var cdn = tarteaucitron.cdn, + language = tarteaucitron.getLanguage(), + pathToLang = cdn + 'lang/tarteaucitron.' + language + '.js?v=' + tarteaucitron.version, + pathToServices = cdn + 'tarteaucitron.services.js?v=' + tarteaucitron.version, + linkElement = document.createElement('link'), + defaults = { + "adblocker": false, + "hashtag": '#tarteaucitron', + "highPrivacy": false, + "orientation": "top", + "removeCredit": false, + "showAlertSmall": true, + "cookieslist": true + }, + params = tarteaucitron.parameters; + + // Step 0: get params + if (params !== undefined) { + tarteaucitron.extend(defaults, params); + } + + // global + tarteaucitron.orientation = defaults.orientation; + tarteaucitron.hashtag = defaults.hashtag; + tarteaucitron.highPrivacy = defaults.highPrivacy; + + // Step 1: load css + linkElement.rel = 'stylesheet'; + linkElement.type = 'text/css'; + linkElement.href = cdn + 'css/tarteaucitron.css?v=' + tarteaucitron.version; + document.getElementsByTagName('head')[0].appendChild(linkElement); + + // Step 2: load language and services + tarteaucitron.addScript(pathToLang, '', function () { + tarteaucitron.addScript(pathToServices, '', function () { + + var body = document.body, + div = document.createElement('div'), + html = '', + index, + orientation = 'Top', + cat = ['ads', 'analytic', 'api', 'comment', 'social', 'support', 'video', 'other'], + i; + + cat = cat.sort(function (a, b) { + if (tarteaucitron.lang[a].title > tarteaucitron.lang[b].title) { return 1; } + if (tarteaucitron.lang[a].title < tarteaucitron.lang[b].title) { return -1; } + return 0; + }); + + // Step 3: prepare the html + html += '
'; + html += '
'; + html += '
'; + + if (defaults.orientation === 'bottom') { + orientation = 'Bottom'; + } + + if (defaults.highPrivacy) { + html += '
'; + } else { + html += '
'; + html += '
'; + } + + if (defaults.showAlertSmall === true) { + html += '
'; + } + html += ''; + } + + tarteaucitron.addScript(tarteaucitron.cdn + 'advertising.js?v=' + tarteaucitron.version, '', function () { + if (tarteaucitronNoAdBlocker === true || defaults.adblocker === false) { + div.id = 'tarteaucitronRoot'; + body.appendChild(div, body); + div.innerHTML = html; + + if (tarteaucitron.job !== undefined) { + tarteaucitron.job = tarteaucitron.cleanArray(tarteaucitron.job); + for (index = 0; index < tarteaucitron.job.length; index += 1) { + tarteaucitron.addService(tarteaucitron.job[index]); + } + } + + tarteaucitron.isAjax = true; + tarteaucitron.job.push = function (id) { + + // ie <9 hack + if (typeof tarteaucitron.job.indexOf === 'undefined') { + tarteaucitron.job.indexOf = function (obj, start) { + var i, + j = this.length; + for (i = (start || 0); i < j; i += 1) { + if (this[i] === obj) { return i; } + } + return -1; + }; + } + + if (tarteaucitron.job.indexOf(id) === -1) { + Array.prototype.push.call(this, id); + } + tarteaucitron.launch[id] = false; + tarteaucitron.addService(id); + }; + + if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') { + tarteaucitron.userInterface.openPanel(); + } + + tarteaucitron.cookie.number(); + setInterval(tarteaucitron.cookie.number, 60000); + } + }, defaults.adblocker); + + if (defaults.adblocker === true) { + setTimeout(function () { + if (tarteaucitronNoAdBlocker === false) { + html = '
'; + html += '
'; + div.id = 'tarteaucitronRoot'; + body.appendChild(div, body); + div.innerHTML = html; + tarteaucitron.pro('!adblocker=true'); + } else { + tarteaucitron.pro('!adblocker=false'); + } + }, 1500); + } + }); + }); + }, + "addService": function (serviceId) { + "use strict"; + var html = '', + s = tarteaucitron.services, + service = s[serviceId], + cookie = tarteaucitron.cookie.read(), + hostname = document.location.hostname, + hostRef = document.referrer.split('/')[2], + isNavigating = (hostRef === hostname) ? true : false, + isAutostart = (!service.needConsent) ? true : false, + isWaiting = (cookie.indexOf(service.key + '=wait') >= 0) ? true : false, + isDenied = (cookie.indexOf(service.key + '=false') >= 0) ? true : false, + isAllowed = (cookie.indexOf(service.key + '=true') >= 0) ? true : false, + isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0) ? true : false; + + if (tarteaucitron.added[service.key] !== true) { + tarteaucitron.added[service.key] = true; + + html += '
'; + + tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block'); + + if (document.getElementById('tarteaucitronServices_' + service.type) !== null) { + document.getElementById('tarteaucitronServices_' + service.type).innerHTML += html; + } + + tarteaucitron.userInterface.order(service.type); + } + + // allow by default for non EU + if (isResponded === false && tarteaucitron.user.bypass === true) { + isAllowed = true; + tarteaucitron.cookie.create(service.key, true); + } + + if ((!isResponded && (isAutostart || (isNavigating && isWaiting)) && !tarteaucitron.highPrivacy) || isAllowed) { + if (!isAllowed) { + tarteaucitron.cookie.create(service.key, true); + } + if (tarteaucitron.launch[service.key] !== true) { + tarteaucitron.launch[service.key] = true; + service.js(); + } + tarteaucitron.state[service.key] = true; + tarteaucitron.userInterface.color(service.key, true); + } else if (isDenied) { + if (typeof service.fallback === 'function') { + service.fallback(); + } + tarteaucitron.state[service.key] = false; + tarteaucitron.userInterface.color(service.key, false); + } else if (!isResponded) { + tarteaucitron.cookie.create(service.key, 'wait'); + if (typeof service.fallback === 'function') { + service.fallback(); + } + tarteaucitron.userInterface.color(service.key, 'wait'); + tarteaucitron.userInterface.openAlert(); + } + + tarteaucitron.cookie.checkCount(service.key); + }, + "cleanArray": function cleanArray(arr) { + "use strict"; + var i, + len = arr.length, + out = [], + obj = {}, + s = tarteaucitron.services; + + for (i = 0; i < len; i += 1) { + if (!obj[arr[i]]) { + obj[arr[i]] = {}; + if (tarteaucitron.services[arr[i]] !== undefined) { + out.push(arr[i]); + } + } + } + + out = out.sort(function (a, b) { + if (s[a].type + s[a].key > s[b].type + s[b].key) { return 1; } + if (s[a].type + s[a].key < s[b].type + s[b].key) { return -1; } + return 0; + }); + + return out; + }, + "userInterface": { + "css": function (id, property, value) { + "use strict"; + if (document.getElementById(id) !== null) { + document.getElementById(id).style[property] = value; + } + }, + "respondAll": function (status) { + "use strict"; + var s = tarteaucitron.services, + service, + key, + index = 0; + + for (index = 0; index < tarteaucitron.job.length; index += 1) { + service = s[tarteaucitron.job[index]]; + key = service.key; + if (tarteaucitron.state[key] !== status) { + if (status === false && tarteaucitron.launch[key] === true) { + tarteaucitron.reloadThePage = true; + } + if (tarteaucitron.launch[key] !== true && status === true) { + tarteaucitron.launch[key] = true; + tarteaucitron.services[key].js(); + } + tarteaucitron.state[key] = status; + tarteaucitron.cookie.create(key, status); + tarteaucitron.userInterface.color(key, status); + } + } + }, + "respond": function (el, status) { + "use strict"; + var key = el.id.replace(new RegExp("(Eng[0-9]+|Allow|Deni)ed", "g"), ''); + + // return if same state + if (tarteaucitron.state[key] === status) { + return; + } + + if (status === false && tarteaucitron.launch[key] === true) { + tarteaucitron.reloadThePage = true; + } + + // if not already launched... launch the service + if (status === true) { + if (tarteaucitron.launch[key] !== true) { + tarteaucitron.launch[key] = true; + tarteaucitron.services[key].js(); + } + } + tarteaucitron.state[key] = status; + tarteaucitron.cookie.create(key, status); + tarteaucitron.userInterface.color(key, status); + }, + "color": function (key, status) { + "use strict"; + var gray = '#808080', + greenDark = '#1B870B', + greenLight = '#E6FFE2', + redDark = '#9C1A1A', + redLight = '#FFE2E2', + yellowDark = '#FBDA26', + c = 'tarteaucitron', + nbDenied = 0, + nbPending = 0, + nbAllowed = 0, + sum = tarteaucitron.job.length, + index; + + if (status === true) { + tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + greenDark); + tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', greenDark); + tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', gray); + } else if (status === false) { + tarteaucitron.userInterface.css(key + 'Line', 'borderLeft', '5px solid ' + redDark); + tarteaucitron.userInterface.css(key + 'Allowed', 'backgroundColor', gray); + tarteaucitron.userInterface.css(key + 'Denied', 'backgroundColor', redDark); + } + + // check if all services are allowed + for (index = 0; index < sum; index += 1) { + if (tarteaucitron.state[tarteaucitron.job[index]] === false) { + nbDenied += 1; + } else if (tarteaucitron.state[tarteaucitron.job[index]] === undefined) { + nbPending += 1; + } else if (tarteaucitron.state[tarteaucitron.job[index]] === true) { + nbAllowed += 1; + } + } + + tarteaucitron.userInterface.css(c + 'DotGreen', 'width', ((100 / sum) * nbAllowed) + '%'); + tarteaucitron.userInterface.css(c + 'DotYellow', 'width', ((100 / sum) * nbPending) + '%'); + tarteaucitron.userInterface.css(c + 'DotRed', 'width', ((100 / sum) * nbDenied) + '%'); + + if (nbDenied === 0 && nbPending === 0) { + tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', greenDark); + tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', gray); + } else if (nbAllowed === 0 && nbPending === 0) { + tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', gray); + tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', redDark); + } else { + tarteaucitron.userInterface.css(c + 'AllAllowed', 'backgroundColor', gray); + tarteaucitron.userInterface.css(c + 'AllDenied', 'backgroundColor', gray); + } + + // close the alert if all service have been reviewed + if (nbPending === 0) { + tarteaucitron.userInterface.closeAlert(); + } + + if (tarteaucitron.services[key].cookies.length > 0 && status === false) { + tarteaucitron.cookie.purge(tarteaucitron.services[key].cookies); + } + + if (status === true) { + if (document.getElementById('tacCL' + key) !== null) { + document.getElementById('tacCL' + key).innerHTML = '...'; + } + setTimeout(function () { + tarteaucitron.cookie.checkCount(key); + }, 2500); + } else { + tarteaucitron.cookie.checkCount(key); + } + }, + "openPanel": function () { + "use strict"; + tarteaucitron.userInterface.css('tarteaucitron', 'display', 'block'); + tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block'); + tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none'); + tarteaucitron.userInterface.jsSizing('main'); + }, + "closePanel": function () { + "use strict"; + + if (document.location.hash === tarteaucitron.hashtag) { + document.location.hash = ''; + } + tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none'); + tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none'); + + tarteaucitron.fallback(['tarteaucitronInfoBox'], function (elem) { + elem.style.display = 'none'; + }, true); + + if (tarteaucitron.reloadThePage === true) { + window.location.reload(); + } else { + tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none'); + } + }, + "openAlert": function () { + "use strict"; + var c = 'tarteaucitron'; + tarteaucitron.userInterface.css(c + 'Percentage', 'display', 'block'); + tarteaucitron.userInterface.css(c + 'AlertSmall', 'display', 'none'); + tarteaucitron.userInterface.css(c + 'AlertBig', 'display', 'block'); + }, + "closeAlert": function () { + "use strict"; + var c = 'tarteaucitron'; + tarteaucitron.userInterface.css(c + 'Percentage', 'display', 'none'); + tarteaucitron.userInterface.css(c + 'AlertSmall', 'display', 'block'); + tarteaucitron.userInterface.css(c + 'AlertBig', 'display', 'none'); + tarteaucitron.userInterface.jsSizing('box'); + }, + "toggleCookiesList": function () { + "use strict"; + var div = document.getElementById('tarteaucitronCookiesListContainer'); + + if (div === null) { + return; + } + + if (div.style.display !== 'block') { + tarteaucitron.cookie.number(); + div.style.display = 'block'; + tarteaucitron.userInterface.jsSizing('cookie'); + tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none'); + tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block'); + tarteaucitron.fallback(['tarteaucitronInfoBox'], function (elem) { + elem.style.display = 'none'; + }, true); + } else { + div.style.display = 'none'; + tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none'); + tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none'); + } + }, + "toggle": function (id, closeClass) { + "use strict"; + var div = document.getElementById(id); + + if (div === null) { + return; + } + + if (closeClass !== undefined) { + tarteaucitron.fallback([closeClass], function (elem) { + if (elem.id !== id) { + elem.style.display = 'none'; + } + }, true); + } + + if (div.style.display !== 'block') { + div.style.display = 'block'; + } else { + div.style.display = 'none'; + } + }, + "order": function (id) { + "use strict"; + var main = document.getElementById('tarteaucitronServices_' + id), + allDivs, + store = [], + i; + + if (main === null) { + return; + } + + allDivs = main.childNodes; + + if (typeof Array.prototype.map === 'function') { + Array.prototype.map.call(main.children, Object).sort(function (a, b) { + if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; } + if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; } + return 0; + }).forEach(function (element) { + main.appendChild(element); + }); + } + }, + "jsSizing": function (type) { + "use strict"; + var scrollbarMarginRight = 10, + scrollbarWidthParent, + scrollbarWidthChild, + servicesHeight, + e = window, + a = 'inner', + windowInnerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight, + mainTop, + mainHeight, + closeButtonHeight, + headerHeight, + cookiesListHeight, + cookiesCloseHeight, + cookiesTitleHeight, + paddingBox, + alertSmallHeight, + cookiesNumberHeight; + + if (type === 'box') { + if (document.getElementById('tarteaucitronAlertSmall') !== null && document.getElementById('tarteaucitronCookiesNumber') !== null) { + + // reset + tarteaucitron.userInterface.css('tarteaucitronCookiesNumber', 'padding', '0px 10px'); + + // calculate + alertSmallHeight = document.getElementById('tarteaucitronAlertSmall').offsetHeight; + cookiesNumberHeight = document.getElementById('tarteaucitronCookiesNumber').offsetHeight; + paddingBox = (alertSmallHeight - cookiesNumberHeight) / 2; + + // apply + tarteaucitron.userInterface.css('tarteaucitronCookiesNumber', 'padding', paddingBox + 'px 10px'); + } + } else if (type === 'main') { + + // get the real window width for media query + if (window.innerWidth === undefined) { + a = 'client'; + e = document.documentElement || document.body; + } + + // height of the services list container + if (document.getElementById('tarteaucitron') !== null && document.getElementById('tarteaucitronClosePanel') !== null && document.getElementById('tarteaucitronMainLineOffset') !== null) { + + // reset + tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', 'auto'); + + // calculate + mainHeight = document.getElementById('tarteaucitron').offsetHeight; + closeButtonHeight = document.getElementById('tarteaucitronClosePanel').offsetHeight; + headerHeight = document.getElementById('tarteaucitronMainLineOffset').offsetHeight; + + // apply + servicesHeight = (mainHeight - closeButtonHeight - headerHeight + 1); + tarteaucitron.userInterface.css('tarteaucitronScrollbarParent', 'height', servicesHeight + 'px'); + } + + // align the main allow/deny button depending on scrollbar width + if (document.getElementById('tarteaucitronScrollbarParent') !== null && document.getElementById('tarteaucitronScrollbarChild') !== null) { + + // media query + if (e[a + 'Width'] <= 479) { + tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginLeft', '11px'); + } else if (e[a + 'Width'] <= 767) { + scrollbarMarginRight = 12; + } + + scrollbarWidthParent = document.getElementById('tarteaucitronScrollbarParent').offsetWidth; + scrollbarWidthChild = document.getElementById('tarteaucitronScrollbarChild').offsetWidth; + tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginRight', ((scrollbarWidthParent - scrollbarWidthChild) + scrollbarMarginRight) + 'px'); + } + + // center the main panel + if (document.getElementById('tarteaucitron') !== null) { + + // media query + if (e[a + 'Width'] <= 767) { + mainTop = 0; + } else { + mainTop = ((windowInnerHeight - document.getElementById('tarteaucitron').offsetHeight) / 2) - 21; + } + + // correct + if (mainTop < 0) { + mainTop = 0; + } + + if (document.getElementById('tarteaucitronMainLineOffset') !== null) { + if (document.getElementById('tarteaucitron').offsetHeight < (windowInnerHeight / 2)) { + mainTop -= document.getElementById('tarteaucitronMainLineOffset').offsetHeight; + } + } + + // apply + tarteaucitron.userInterface.css('tarteaucitron', 'top', mainTop + 'px'); + } + + + } else if (type === 'cookie') { + + // put cookies list at bottom + if (document.getElementById('tarteaucitronAlertSmall') !== null) { + tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'bottom', (document.getElementById('tarteaucitronAlertSmall').offsetHeight) + 'px'); + } + + // height of cookies list + if (document.getElementById('tarteaucitronCookiesListContainer') !== null) { + + // reset + tarteaucitron.userInterface.css('tarteaucitronCookiesList', 'height', 'auto'); + + // calculate + cookiesListHeight = document.getElementById('tarteaucitronCookiesListContainer').offsetHeight; + cookiesCloseHeight = document.getElementById('tarteaucitronClosePanelCookie').offsetHeight; + cookiesTitleHeight = document.getElementById('tarteaucitronCookiesTitle').offsetHeight; + + // apply + tarteaucitron.userInterface.css('tarteaucitronCookiesList', 'height', (cookiesListHeight - cookiesCloseHeight - cookiesTitleHeight - 2) + 'px'); + } + } + } + }, + "cookie": { + "owner": {}, + "create": function (key, status) { + "use strict"; + var d = new Date(), + time = d.getTime(), + expireTime = time + 31536000000, // 365 days + regex = new RegExp("!" + key + "=(wait|true|false)", "g"), + cookie = tarteaucitron.cookie.read().replace(regex, ""), + value = 'tarteaucitron=' + cookie + '!' + key + '=' + status; + + if (tarteaucitron.cookie.read().indexOf(key + '=' + status) === -1) { + tarteaucitron.pro('!' + key + '=' + status); + } + + d.setTime(expireTime); + document.cookie = value + '; expires=' + d.toGMTString() + '; path=/;'; + }, + "read": function () { + "use strict"; + var nameEQ = "tarteaucitron=", + ca = document.cookie.split(';'), + i, + c; + + for (i = 0; i < ca.length; i += 1) { + c = ca[i]; + while (c.charAt(0) === ' ') { + c = c.substring(1, c.length); + } + if (c.indexOf(nameEQ) === 0) { + return c.substring(nameEQ.length, c.length); + } + } + return ''; + }, + "purge": function (arr) { + "use strict"; + var i; + + for (i = 0; i < arr.length; i += 1) { + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/;'; + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname + ';'; + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname.split('.').slice(-2).join('.') + ';'; + } + }, + "checkCount": function (key) { + "use strict"; + var arr = tarteaucitron.services[key].cookies, + nb = arr.length, + nbCurrent = 0, + html = '', + i, + status = document.cookie.indexOf(key + '=true'); + + if (status >= 0 && nb === 0) { + html += tarteaucitron.lang.useNoCookie; + } else if (status >= 0) { + for (i = 0; i < nb; i += 1) { + if (document.cookie.indexOf(arr[i] + '=') !== -1) { + nbCurrent += 1; + if (tarteaucitron.cookie.owner[arr[i]] === undefined) { + tarteaucitron.cookie.owner[arr[i]] = []; + } + if (tarteaucitron.cookie.crossIndexOf(tarteaucitron.cookie.owner[arr[i]], tarteaucitron.services[key].name) === false) { + tarteaucitron.cookie.owner[arr[i]].push(tarteaucitron.services[key].name); + } + } + } + + if (nbCurrent > 0) { + html += tarteaucitron.lang.useCookieCurrent + ' ' + nbCurrent + ' cookie'; + if (nbCurrent > 1) { + html += 's'; + } + html += '.'; + } else { + html += tarteaucitron.lang.useNoCookie; + } + } else if (nb === 0) { + html = tarteaucitron.lang.noCookie; + } else { + html += tarteaucitron.lang.useCookie + ' ' + nb + ' cookie'; + if (nb > 1) { + html += 's'; + } + html += '.'; + } + + if (document.getElementById('tacCL' + key) !== null) { + document.getElementById('tacCL' + key).innerHTML = html; + } + }, + "crossIndexOf": function (arr, match) { + "use strict"; + var i; + for (i = 0; i < arr.length; i += 1) { + if (arr[i] === match) { + return true; + } + } + return false; + }, + "number": function () { + "use strict"; + var cookies = document.cookie.split(';'), + nb = (document.cookie !== '') ? cookies.length : 0, + html = '', + i, + name, + namea, + nameb, + c, + d, + s = (nb > 1) ? 's' : '', + savedname, + regex = /^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i, + regexedDomain = (tarteaucitron.cdn.match(regex) !== null) ? tarteaucitron.cdn.match(regex)[1] : tarteaucitron.cdn, + host = (tarteaucitron.domain !== undefined) ? tarteaucitron.domain : regexedDomain; + + cookies = cookies.sort(function (a, b) { + namea = a.split('=', 1).toString().replace(/ /g, ''); + nameb = b.split('=', 1).toString().replace(/ /g, ''); + c = (tarteaucitron.cookie.owner[namea] !== undefined) ? tarteaucitron.cookie.owner[namea] : '0'; + d = (tarteaucitron.cookie.owner[nameb] !== undefined) ? tarteaucitron.cookie.owner[nameb] : '0'; + if (c + a > d + b) { return 1; } + if (c + a < d + b) { return -1; } + return 0; + }); + + if (document.cookie !== '') { + for (i = 0; i < nb; i += 1) { + name = cookies[i].split('=', 1).toString().replace(/ /g, ''); + if (tarteaucitron.cookie.owner[name] !== undefined && tarteaucitron.cookie.owner[name].join(' // ') !== savedname) { + savedname = tarteaucitron.cookie.owner[name].join(' // '); + html += '
'; + } else if (tarteaucitron.cookie.owner[name] === undefined && host !== savedname) { + savedname = host; + html += '
'; + } + html += '
'; + } + } else { + html += '
'; + } + + html += '
'; + + if (document.getElementById('tarteaucitronCookiesList') !== null) { + document.getElementById('tarteaucitronCookiesList').innerHTML = html; + } + + if (document.getElementById('tarteaucitronCookiesNumber') !== null) { + document.getElementById('tarteaucitronCookiesNumber').innerHTML = nb; + } + + if (document.getElementById('tarteaucitronCookiesNumberBis') !== null) { + document.getElementById('tarteaucitronCookiesNumberBis').innerHTML = nb + ' cookie' + s; + } + + for (i = 0; i < tarteaucitron.job.length; i += 1) { + tarteaucitron.cookie.checkCount(tarteaucitron.job[i]); + } + } + }, + "getLanguage": function () { + "use strict"; + if (!navigator) { return 'en'; } + + var availableLanguages = 'cs,en,fr,es,it,de,pt,pl,ru', + defaultLanguage = 'en', + lang = navigator.language || navigator.browserLanguage || + navigator.systemLanguage || navigator.userLang || null, + userLanguage = lang.substr(0, 2); + + if (tarteaucitronForceLanguage !== '') { + if (availableLanguages.indexOf(tarteaucitronForceLanguage) !== -1) { + return tarteaucitronForceLanguage; + } + } + + if (availableLanguages.indexOf(userLanguage) === -1) { + return defaultLanguage; + } + return userLanguage; + }, + "getLocale": function () { + "use strict"; + if (!navigator) { return 'en_US'; } + + var lang = navigator.language || navigator.browserLanguage || + navigator.systemLanguage || navigator.userLang || null, + userLanguage = lang.substr(0, 2); + + if (userLanguage === 'fr') { + return 'fr_FR'; + } else if (userLanguage === 'en') { + return 'en_US'; + } else if (userLanguage === 'de') { + return 'de_DE'; + } else if (userLanguage === 'es') { + return 'es_ES'; + } else if (userLanguage === 'it') { + return 'it_IT'; + } else if (userLanguage === 'pt') { + return 'pt_PT'; + } else { + return 'en_US'; + } + }, + "addScript": function (url, id, callback, execute, attrName, attrVal) { + "use strict"; + var script, + done = false; + + if (execute === false) { + if (typeof callback === 'function') { + callback(); + } + } else { + script = document.createElement('script'); + script.type = 'text/javascript'; + script.id = (id !== undefined) ? id : ''; + script.async = true; + script.src = url; + + if (attrName !== undefined && attrVal !== undefined) { + script.setAttribute(attrName, attrVal); + } + + if (typeof callback === 'function') { + script.onreadystatechange = script.onload = function () { + var state = script.readyState; + if (!done && (!state || /loaded|complete/.test(state))) { + done = true; + callback(); + } + }; + } + + document.getElementsByTagName('head')[0].appendChild(script); + } + }, + "makeAsync": { + "antiGhost": 0, + "buffer": '', + "init": function (url, id) { + "use strict"; + var savedWrite = document.write, + savedWriteln = document.writeln; + + document.write = function (content) { + tarteaucitron.makeAsync.buffer += content; + }; + document.writeln = function (content) { + tarteaucitron.makeAsync.buffer += content.concat("\n"); + }; + + setTimeout(function () { + document.write = savedWrite; + document.writeln = savedWriteln; + }, 20000); + + tarteaucitron.makeAsync.getAndParse(url, id); + }, + "getAndParse": function (url, id) { + "use strict"; + if (tarteaucitron.makeAsync.antiGhost > 9) { + tarteaucitron.makeAsync.antiGhost = 0; + return; + } + tarteaucitron.makeAsync.antiGhost += 1; + tarteaucitron.addScript(url, '', function () { + if (document.getElementById(id) !== null) { + document.getElementById(id).innerHTML += "
" + tarteaucitron.makeAsync.buffer; + tarteaucitron.makeAsync.buffer = ''; + tarteaucitron.makeAsync.execJS(id); + } + }); + }, + "execJS": function (id) { + /* not strict because third party scripts may have errors */ + var i, + scripts, + childId, + type; + + if (document.getElementById(id) === null) { + return; + } + + scripts = document.getElementById(id).getElementsByTagName('script'); + for (i = 0; i < scripts.length; i += 1) { + type = (scripts[i].getAttribute('type') !== null) ? scripts[i].getAttribute('type') : ''; + if (type === '') { + type = (scripts[i].getAttribute('language') !== null) ? scripts[i].getAttribute('language') : ''; + } + if (scripts[i].getAttribute('src') !== null && scripts[i].getAttribute('src') !== '') { + childId = id + Math.floor(Math.random() * 99999999999); + document.getElementById(id).innerHTML += ''; + tarteaucitron.makeAsync.getAndParse(scripts[i].getAttribute('src'), childId); + } else if (type.indexOf('javascript') !== -1 || type === '') { + eval(scripts[i].innerHTML); + } + } + } + }, + "fallback": function (matchClass, content, noInner) { + "use strict"; + var elems = document.getElementsByTagName('*'), + i, + index = 0; + + for (i in elems) { + if (elems[i] !== undefined) { + for (index = 0; index < matchClass.length; index += 1) { + if ((' ' + elems[i].className + ' ') + .indexOf(' ' + matchClass[index] + ' ') > -1) { + if (typeof content === 'function') { + if (noInner === true) { + content(elems[i]); + } else { + elems[i].innerHTML = content(elems[i]); + } + } else { + elems[i].innerHTML = content; + } + } + } + } + } + }, + "engage": function (id) { + "use strict"; + var html = '', + r = Math.floor(Math.random() * 100000); + + html += '
'; + + return html; + }, + "extend": function (a, b) { + "use strict"; + var prop; + for (prop in b) { + if (b.hasOwnProperty(prop)) { + a[prop] = b[prop]; + } + } + }, + "proTemp": '', + "proTimer": function () { + "use strict"; + setTimeout(tarteaucitron.proPing, 1000); + }, + "pro": function (list) { + "use strict"; + tarteaucitron.proTemp += list; + clearTimeout(tarteaucitron.proTimer); + tarteaucitron.proTimer = setTimeout(tarteaucitron.proPing, 2500); + }, + "proPing": function () { + "use strict"; + if (tarteaucitron.uuid !== '' && tarteaucitron.uuid !== undefined && tarteaucitron.proTemp !== '') { + var div = document.getElementById('tarteaucitronPremium'), + timestamp = new Date().getTime(), + url = '//opt-out.ferank.eu/premium.php?'; + + if (div === null) { + return; + } + + url += 'domain=' + tarteaucitron.domain + '&'; + url += 'uuid=' + tarteaucitron.uuid + '&'; + url += 'c=' + encodeURIComponent(tarteaucitron.proTemp) + '&'; + url += '_' + timestamp; + + div.innerHTML = '
'; + + tarteaucitron.proTemp = ''; + } + + tarteaucitron.cookie.number(); + } +}; \ No newline at end of file diff --git a/docs/pages/assets/js/tarteaucitron/tarteaucitron.services.js b/docs/pages/assets/js/tarteaucitron/tarteaucitron.services.js new file mode 100644 index 0000000..8133f81 --- /dev/null +++ b/docs/pages/assets/js/tarteaucitron/tarteaucitron.services.js @@ -0,0 +1,1849 @@ +/*global tarteaucitron, ga, Shareaholic, stLight, clicky, top, google, Typekit, FB, ferankReady, IN, stButtons, twttr, PCWidget*/ +/*jslint regexp: true, nomen: true*/ + +// generic iframe +tarteaucitron.services.iframe = { + "key": "iframe", + "type": "other", + "name": "Web content", + "uri": "", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tac_iframe'], function (x) { + var width = x.getAttribute("width"), + height = x.getAttribute("height"), + url = x.getAttribute("data-url"); + + return ''; + }); + }, + "fallback": function () { + "use strict"; + var id = 'iframe'; + tarteaucitron.fallback(['tac_iframe'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// addthis +tarteaucitron.services.addthis = { + "key": "addthis", + "type": "social", + "name": "AddThis", + "uri": "https://www.addthis.com/privacy/privacy-policy#publisher-visitors", + "needConsent": true, + "cookies": ['__atuvc', '__atuvs'], + "js": function () { + "use strict"; + if (tarteaucitron.user.addthisPubId === undefined) { + return; + } + if (tarteaucitron.isAjax === true) { + window.addthis = null; + window._adr = null; + window._atc = null; + window._atd = null; + window._ate = null; + window._atr = null; + window._atw = null; + } + tarteaucitron.fallback(['addthis_sharing_toolbox'], ''); + tarteaucitron.addScript('//s7.addthis.com/js/300/addthis_widget.js#pubid=' + tarteaucitron.user.addthisPubId); + }, + "fallback": function () { + "use strict"; + var id = 'addthis'; + tarteaucitron.fallback(['addthis_sharing_toolbox'], tarteaucitron.engage(id)); + } +}; + +// addtoanyfeed +tarteaucitron.services.addtoanyfeed = { + "key": "addtoanyfeed", + "type": "social", + "name": "AddToAny (feed)", + "uri": "https://www.addtoany.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.addtoanyfeedUri === undefined) { + return; + } + tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri; + window.a2a_config = window.a2a_config || {}; + window.a2a_config.linkurl = tarteaucitron.user.addtoanyfeedUri; + tarteaucitron.addScript('//static.addtoany.com/menu/feed.js'); + }, + "fallback": function () { + "use strict"; + tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri; + } +}; + +// addtoanyshare +tarteaucitron.services.addtoanyshare = { + "key": "addtoanyshare", + "type": "social", + "name": "AddToAny (share)", + "uri": "https://www.addtoany.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tac_addtoanyshare'], ''); + tarteaucitron.addScript('//static.addtoany.com/menu/page.js'); + }, + "fallback": function () { + "use strict"; + var id = 'addtoanyshare'; + tarteaucitron.fallback(['tac_addtoanyshare'], tarteaucitron.engage(id)); + } +}; + +// alexa +tarteaucitron.services.alexa = { + "key": "alexa", + "type": "analytic", + "name": "Alexa", + "uri": "https://www.alexa.com/help/privacy", + "needConsent": true, + "cookies": ['__asc', '__auc'], + "js": function () { + "use strict"; + if (tarteaucitron.user.alexaAccountID === undefined) { + return; + } + window._atrk_opts = { + atrk_acct: tarteaucitron.user.alexaAccountID, + domain: window.location.hostname.match(/[^\.]*\.[^.]*$/)[0], + dynamic: true + }; + tarteaucitron.addScript('https://d31qbv1cthcecs.cloudfront.net/atrk.js'); + } +}; + +// amazon +tarteaucitron.services.amazon = { + "key": "amazon", + "type": "ads", + "name": "Amazon", + "uri": "https://www.amazon.fr/gp/help/customer/display.html?ie=UTF8&*Version*=1&*entries*=0&nodeId=201149360", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['amazon_product'], function (x) { + var amazonId = x.getAttribute("amazonid"), + productId = x.getAttribute("productid"), + url = '//ws-eu.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=' + tarteaucitron.getLanguage().toUpperCase() + '&source=ss&ref=ss_til&ad_type=product_link&tracking_id=' + amazonId + '&marketplace=amazon®ion=' + tarteaucitron.getLanguage().toUpperCase() + '&placement=' + productId + '&asins=' + productId + '&show_border=true&link_opens_in_new_window=true', + iframe = ''; + + return iframe; + }); + }, + "fallback": function () { + "use strict"; + var id = 'amazon'; + tarteaucitron.fallback(['amazon_product'], tarteaucitron.engage(id)); + } +}; + +// calameo +tarteaucitron.services.calameo = { + "key": "calameo", + "type": "video", + "name": "Calameo", + "uri": "https://fr.calameo.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['calameo-canvas'], function (x) { + var id = x.getAttribute("data-id"), + width = x.getAttribute("width"), + height = x.getAttribute("height"), + url = '//v.calameo.com/?bkcode=' + id; + + return ''; + }); + }, + "fallback": function () { + "use strict"; + var id = 'calameo'; + tarteaucitron.fallback(['calameo-canvas'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// clicky +tarteaucitron.services.clicky = { + "key": "clicky", + "type": "analytic", + "name": "Clicky", + "uri": "https://clicky.com/terms", + "needConsent": true, + "cookies": ['_jsuid', '_eventqueue', '_referrer_og', '_utm_og', '_first_pageview', 'clicky_olark', 'no_trackyy_' + tarteaucitron.user.clickyId, 'unpoco_' + tarteaucitron.user.clickyId, 'heatmaps_g2g_' + tarteaucitron.user.clickyId], + "js": function () { + "use strict"; + if (tarteaucitron.user.clickyId === undefined) { + return; + } + tarteaucitron.addScript('//static.getclicky.com/js', '', function () { + if (typeof clicky.init === 'function') { + clicky.init(tarteaucitron.user.clickyId); + } + if (typeof tarteaucitron.user.clickyMore === 'function') { + tarteaucitron.user.clickyMore(); + } + }); + } +}; + +// clicmanager +tarteaucitron.services.clicmanager = { + "key": "clicmanager", + "type": "ads", + "name": "Clicmanager", + "uri": "http://www.clicmanager.fr/infos_legales.php", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['clicmanager-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return ''; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + uri = '//ads.clicmanager.fr/exe.php?'; + uri += 'c=' + document.getElementById(uniqIds[i]).getAttribute('c') + '&'; + uri += 's=' + document.getElementById(uniqIds[i]).getAttribute('s') + '&'; + uri += 't=' + document.getElementById(uniqIds[i]).getAttribute('t'); + + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'clicmanager'; + tarteaucitron.fallback(['clicmanager-canvas'], tarteaucitron.engage(id)); + } +}; + +// crazyegg +tarteaucitron.services.crazyegg = { + "key": "crazyegg", + "type": "analytic", + "name": "Crazy Egg", + "uri": "https://www.crazyegg.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + + if (tarteaucitron.user.crazyeggId === undefined) { + return; + } + + tarteaucitron.addScript('//script.crazyegg.com/pages/scripts/' + tarteaucitron.user.crazyeggId.substr(0, 4) + '/' + tarteaucitron.user.crazyeggId.substr(4, 4) + '.js'); + } +}; + +// criteo +tarteaucitron.services.criteo = { + "key": "criteo", + "type": "ads", + "name": "Criteo", + "uri": "http://www.criteo.com/privacy/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + document.MAX_ct0 = ''; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['criteo-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + uri = '//cas.criteo.com/delivery/ajs.php?'; + uri += 'zoneid=' + document.getElementById(uniqIds[i]).getAttribute('zoneid'); + uri += '&nodis=1&cb=' + Math.floor(Math.random() * 99999999999); + uri += '&loc=' + encodeURI(window.location); + uri += (document.MAX_used !== ',') ? '&exclude=' + document.MAX_used : ''; + uri += (document.charset !== undefined ? '&charset=' + document.charset : ''); + uri += (document.characterSet !== undefined ? '&charset=' + document.characterSet : ''); + uri += (document.referrer !== undefined) ? '&referer=' + encodeURI(document.referrer) : ''; + uri += (document.context !== undefined) ? '&context=' + encodeURI(document.context) : ''; + uri += ((document.MAX_ct0 !== undefined) && (document.MAX_ct0.substring(0, 4) === 'http')) ? '&ct0=' + encodeURI(document.MAX_ct0) : ''; + uri += (document.mmm_fo !== undefined) ? '&mmm_fo=1' : ''; + + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'criteo'; + tarteaucitron.fallback(['criteo-canvas'], tarteaucitron.engage(id)); + } +}; + +// dailymotion +tarteaucitron.services.dailymotion = { + "key": "dailymotion", + "type": "video", + "name": "Dailymotion", + "uri": "https://www.dailymotion.com/legal/privacy", + "needConsent": true, + "cookies": ['ts', 'dmvk', 'hist', 'v1st', 's_vi'], + "js": function () { + "use strict"; + tarteaucitron.fallback(['dailymotion_player'], function (x) { + var video_id = x.getAttribute("videoID"), + video_width = x.getAttribute("width"), + frame_width = 'width=', + video_height = x.getAttribute("height"), + frame_height = 'height=', + video_frame, + params = 'info=' + x.getAttribute("showinfo") + '&autoPlay=' + x.getAttribute("autoplay"); + + if (video_id === undefined) { + return ""; + } + if (video_width !== undefined) { + frame_width += '"' + video_width + '" '; + } else { + frame_width += '"" '; + } + if (video_height !== undefined) { + frame_height += '"' + video_height + '" '; + } else { + frame_height += '"" '; + } + video_frame = ''; + return video_frame; + }); + }, + "fallback": function () { + "use strict"; + var id = 'dailymotion'; + tarteaucitron.fallback(['dailymotion_player'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// dating affiliation +tarteaucitron.services.datingaffiliation = { + "key": "datingaffiliation", + "type": "ads", + "name": "Dating Affiliation", + "uri": "http://www.dating-affiliation.com/conditions-generales.php", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['datingaffiliation-canvas'], function (x) { + var comfrom = x.getAttribute("data-comfrom"), + r = x.getAttribute("data-r"), + p = x.getAttribute("data-p"), + cf0 = x.getAttribute("data-cf0"), + langue = x.getAttribute("data-langue"), + forward_affiliate = x.getAttribute("data-forwardAffiliate"), + cf2 = x.getAttribute("data-cf2"), + cfsa2 = x.getAttribute("data-cfsa2"), + width = x.getAttribute("width"), + height = x.getAttribute("height"), + url = 'http://www.tools-affil2.com/rotaban/ban.php?' + comfrom; + + return ''; + }); + }, + "fallback": function () { + "use strict"; + var id = 'datingaffiliation'; + tarteaucitron.fallback(['datingaffiliation-canvas'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// dating affiliation popup +tarteaucitron.services.datingaffiliationpopup = { + "key": "datingaffiliationpopup", + "type": "ads", + "name": "Dating Affiliation (Pop Up)", + "uri": "http://www.dating-affiliation.com/conditions-generales.php", + "needConsent": true, + "cookies": ['__utma', '__utmb', '__utmc', '__utmt_Tools', '__utmv', '__utmz', '_ga', '_gat', '_gat_UA-65072040-17', '__da-pu-xflirt-ID-pc-o169'], + "js": function () { + "use strict"; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['datingaffiliationpopup-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + uri = 'http://www.promotools.biz/da/popunder/script.php?'; + uri += 'comfrom=' + document.getElementById(uniqIds[i]).getAttribute('comfrom') + '&'; + uri += 'promo=' + document.getElementById(uniqIds[i]).getAttribute('promo') + '&'; + uri += 'product_id=' + document.getElementById(uniqIds[i]).getAttribute('productid') + '&'; + uri += 'submitconfig=' + document.getElementById(uniqIds[i]).getAttribute('submitconfig') + '&'; + uri += 'ur=' + document.getElementById(uniqIds[i]).getAttribute('ur') + '&'; + uri += 'brand=' + document.getElementById(uniqIds[i]).getAttribute('brand') + '&'; + uri += 'lang=' + document.getElementById(uniqIds[i]).getAttribute('lang') + '&'; + uri += 'cf0=' + document.getElementById(uniqIds[i]).getAttribute('cf0') + '&'; + uri += 'cf2=' + document.getElementById(uniqIds[i]).getAttribute('cf2') + '&'; + uri += 'subid1=' + document.getElementById(uniqIds[i]).getAttribute('subid1') + '&'; + uri += 'cfsa2=' + document.getElementById(uniqIds[i]).getAttribute('cfsa2') + '&'; + uri += 'subid2=' + document.getElementById(uniqIds[i]).getAttribute('subid2') + '&'; + uri += 'nicheId=' + document.getElementById(uniqIds[i]).getAttribute('nicheid') + '&'; + uri += 'degreId=' + document.getElementById(uniqIds[i]).getAttribute('degreid') + '&'; + uri += 'bt=' + document.getElementById(uniqIds[i]).getAttribute('bt') + '&'; + uri += 'vis=' + document.getElementById(uniqIds[i]).getAttribute('vis') + '&'; + uri += 'hid=' + document.getElementById(uniqIds[i]).getAttribute('hid') + '&'; + uri += 'snd=' + document.getElementById(uniqIds[i]).getAttribute('snd') + '&'; + uri += 'aabd=' + document.getElementById(uniqIds[i]).getAttribute('aabd') + '&'; + uri += 'aabs=' + document.getElementById(uniqIds[i]).getAttribute('aabs'); + + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'datingaffiliationpopup'; + tarteaucitron.fallback(['datingaffiliationpopup-canvas'], tarteaucitron.engage(id)); + } +}; + +// disqus +tarteaucitron.services.disqus = { + "key": "disqus", + "type": "comment", + "name": "Disqus", + "uri": "https://help.disqus.com/customer/portal/articles/466259-privacy-policy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.disqusShortname === undefined) { + return; + } + tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/embed.js'); + tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/count.js'); + }, + "fallback": function () { + "use strict"; + var id = 'disqus'; + + if (document.getElementById('disqus_thread')) { + document.getElementById('disqus_thread').innerHTML = tarteaucitron.engage(id); + } + } +}; + +// ekomi +tarteaucitron.services.ekomi = { + "key": "ekomi", + "type": "social", + "name": "eKomi", + "uri": "http://www.ekomi-us.com/us/privacy/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.ekomiCertId === undefined) { + return; + } + window.eKomiIntegrationConfig = [ + {certId: tarteaucitron.user.ekomiCertId} + ]; + tarteaucitron.addScript('//connect.ekomi.de/integration_1410173009/' + tarteaucitron.user.ekomiCertId + '.js'); + } +}; + +// etracker +tarteaucitron.services.etracker = { + "key": "etracker", + "type": "analytic", + "name": "eTracker", + "uri": "https://www.etracker.com/en/data-protection.html", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.etracker === undefined) { + return; + } + + tarteaucitron.addScript('//static.etracker.com/code/e.js', '_etLoader', function () {}, true, "data-secure-code", tarteaucitron.user.etracker); + } +}; + +// facebook +tarteaucitron.services.facebook = { + "key": "facebook", + "type": "social", + "name": "Facebook", + "uri": "https://www.facebook.com/policies/cookies/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like'], ''); + tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk'); + if (tarteaucitron.isAjax === true) { + if (typeof FB !== "undefined") { + FB.XFBML.parse(); + } + } + }, + "fallback": function () { + "use strict"; + var id = 'facebook'; + tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like'], tarteaucitron.engage(id)); + } +}; + +// facebooklikebox +tarteaucitron.services.facebooklikebox = { + "key": "facebooklikebox", + "type": "social", + "name": "Facebook (like box)", + "uri": "https://www.facebook.com/policies/cookies/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['fb-like-box', 'fb-page'], ''); + tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.3', 'facebook-jssdk'); + if (tarteaucitron.isAjax === true) { + if (typeof FB !== "undefined") { + FB.XFBML.parse(); + } + } + }, + "fallback": function () { + "use strict"; + var id = 'facebooklikebox'; + tarteaucitron.fallback(['fb-like-box', 'fb-page'], tarteaucitron.engage(id)); + } +}; + +// facebookcomment +tarteaucitron.services.facebookcomment = { + "key": "facebookcomment", + "type": "comment", + "name": "Facebook (commentaire)", + "uri": "https://www.facebook.com/policies/cookies/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['fb-comments'], ''); + tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk'); + if (tarteaucitron.isAjax === true) { + if (typeof FB !== "undefined") { + FB.XFBML.parse(); + } + } + }, + "fallback": function () { + "use strict"; + var id = 'facebookcomment'; + tarteaucitron.fallback(['fb-comments'], tarteaucitron.engage(id)); + } +}; + +// ferank +tarteaucitron.services.ferank = { + "key": "ferank", + "type": "analytic", + "name": "FERank", + "uri": "https://www.ferank.fr/respect-vie-privee/#mesureaudience", + "needConsent": false, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('//static.ferank.fr/pixel.js', '', function () { + if (typeof tarteaucitron.user.ferankMore === 'function') { + tarteaucitron.user.ferankMore(); + } + }); + } +}; + +// ferank pub +tarteaucitron.services.ferankpub = { + "key": "ferankpub", + "type": "ads", + "name": "FERank (pub)", + "uri": "https://www.ferank.fr/respect-vie-privee/#regiepublicitaire", + "needConsent": false, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('//static.ferank.fr/publicite.async.js'); + if (tarteaucitron.isAjax === true) { + if (typeof ferankReady === 'function') { + ferankReady(); + } + } + }, + "fallback": function () { + "use strict"; + var id = 'ferankpub'; + tarteaucitron.fallback(['ferank-publicite'], tarteaucitron.engage(id)); + } +}; + +// get+ +tarteaucitron.services.getplus = { + "key": "getplus", + "type": "analytic", + "name": "Get+", + "uri": "http://www.getplus.fr/Conditions-generales-de-vente_a226.html", + "needConsent": true, + "cookies": ['_first_pageview', '_jsuid', 'no_trackyy_' + tarteaucitron.user.getplusId, '_eventqueue'], + "js": function () { + "use strict"; + if (tarteaucitron.user.getplusId === undefined) { + return; + } + + window.webleads_site_ids = window.webleads_site_ids || []; + window.webleads_site_ids.push(tarteaucitron.user.getplusId); + tarteaucitron.addScript('//stats.webleads-tracker.com/js'); + } +}; + +// google+ +tarteaucitron.services.gplus = { + "key": "gplus", + "type": "social", + "name": "Google+", + "uri": "https://policies.google.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('https://apis.google.com/js/platform.js'); + }, + "fallback": function () { + "use strict"; + var id = 'gplus'; + tarteaucitron.fallback(['g-plus', 'g-plusone'], tarteaucitron.engage(id)); + } +}; + +// google+ badge +tarteaucitron.services.gplusbadge = { + "key": "gplusbadge", + "type": "social", + "name": "Google+ (badge)", + "uri": "https://policies.google.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('https://apis.google.com/js/platform.js'); + }, + "fallback": function () { + "use strict"; + var id = 'gplusbadge'; + tarteaucitron.fallback(['g-page', 'g-person'], tarteaucitron.engage(id)); + } +}; + +// google adsense +tarteaucitron.services.adsense = { + "key": "adsense", + "type": "ads", + "name": "Google Adsense", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'); + }, + "fallback": function () { + "use strict"; + var id = 'adsense'; + tarteaucitron.fallback(['adsbygoogle'], tarteaucitron.engage(id)); + } +}; + +// google partners badge +tarteaucitron.services.googlepartners = { + "key": "googlepartners", + "type": "ads", + "name": "Google Partners Badge", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('https://apis.google.com/js/platform.js'); + }, + "fallback": function () { + "use strict"; + var id = 'googlepartners'; + tarteaucitron.fallback(['g-partnersbadge'], tarteaucitron.engage(id)); + } +}; + +// google adsense search (form) +tarteaucitron.services.adsensesearchform = { + "key": "adsensesearchform", + "type": "ads", + "name": "Google Adsense Search (form)", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('//www.google.com/coop/cse/brand?form=cse-search-box&lang=' + tarteaucitron.getLanguage()); + } +}; + +// google adsense search (result) +tarteaucitron.services.adsensesearchresult = { + "key": "adsensesearchresult", + "type": "ads", + "name": "Google Adsense Search (result)", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.adsensesearchresultCx === undefined) { + return; + } + tarteaucitron.addScript('//www.google.com/cse/cse.js?cx=' + tarteaucitron.user.adsensesearchresultCx); + }, + "fallback": function () { + "use strict"; + var id = 'adsensesearchresult'; + + if (document.getElementById('gcse_searchresults')) { + document.getElementById('gcse_searchresults').innerHTML = tarteaucitron.engage(id); + } + } +}; + +// googleadwordsconversion +tarteaucitron.services.googleadwordsconversion = { + "key": "googleadwordsconversion", + "type": "ads", + "name": "Google Adwords (conversion)", + "uri": "https://www.google.com/settings/ads", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.adwordsconversionId === undefined) { + return; + } + + tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () { + window.google_trackConversion({ + google_conversion_id: tarteaucitron.user.adwordsconversionId, + google_conversion_label: tarteaucitron.user.adwordsconversionLabel, + google_conversion_language: tarteaucitron.user.adwordsconversionLanguage, + google_conversion_format: tarteaucitron.user.adwordsconversionFormat, + google_conversion_color: tarteaucitron.user.adwordsconversionColor, + google_conversion_value: tarteaucitron.user.adwordsconversionValue, + google_conversion_currency: tarteaucitron.user.adwordsconversionCurrency, + google_custom_params: { + parameter1: tarteaucitron.user.adwordsconversionCustom1, + parameter2: tarteaucitron.user.adwordsconversionCustom2 + } + }); + }); + } +}; + +// googleadwordsremarketing +tarteaucitron.services.googleadwordsremarketing = { + "key": "googleadwordsremarketing", + "type": "ads", + "name": "Google Adwords (remarketing)", + "uri": "https://www.google.com/settings/ads", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.adwordsremarketingId === undefined) { + return; + } + + tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () { + window.google_trackConversion({ + google_conversion_id: tarteaucitron.user.adwordsremarketingId, + google_remarketing_only: true + }); + }); + } +}; + +// google analytics (old) +tarteaucitron.services.gajs = { + "key": "gajs", + "type": "analytic", + "name": "Google Analytics (ga.js)", + "uri": "https://support.google.com/analytics/answer/6004245", + "needConsent": true, + "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'], + "js": function () { + "use strict"; + window._gaq = window._gaq || []; + window._gaq.push(['_setAccount', tarteaucitron.user.gajsUa]); + window._gaq.push(['_trackPageview']); + + tarteaucitron.addScript('//www.google-analytics.com/ga.js', '', function () { + if (typeof tarteaucitron.user.gajsMore === 'function') { + tarteaucitron.user.gajsMore(); + } + }); + } +}; + +// google analytics +tarteaucitron.services.analytics = { + "key": "analytics", + "type": "analytic", + "name": "Google Analytics (universal)", + "uri": "https://support.google.com/analytics/answer/6004245", + "needConsent": true, + "cookies": ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'], + "js": function () { + "use strict"; + window.GoogleAnalyticsObject = 'ga'; + window.ga = window.ga || function () { + window.ga.q = window.ga.q || []; + window.ga.q.push(arguments); + }; + window.ga.l = new Date(); + + tarteaucitron.addScript('//www.google-analytics.com/analytics.js', '', function () { + ga('create', tarteaucitron.user.analyticsUa, {'cookieExpires': 34128000}); + ga('send', 'pageview'); + if (typeof tarteaucitron.user.analyticsMore === 'function') { + tarteaucitron.user.analyticsMore(); + } + }); + } +}; + +// google analytics +tarteaucitron.services.gtag = { + "key": "gtag", + "type": "analytic", + "name": "Google Analytics (gtag.js)", + "uri": "https://support.google.com/analytics/answer/6004245", + "needConsent": true, + "cookies": ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'], + "js": function () { + "use strict"; + window.dataLayer = window.dataLayer || []; + + tarteaucitron.addScript('//www.googletagmanager.com/gtag/js?id=' + tarteaucitron.user.gtagUa, '', function () { + function gtag(){dataLayer.push(arguments);} + gtag('js', new Date()); + gtag('config', tarteaucitron.user.gtagUa); + + if (typeof tarteaucitron.user.gtagMore === 'function') { + tarteaucitron.user.gtagMore(); + } + }); + } +}; + +// google maps +tarteaucitron.services.googlemaps = { + "key": "googlemaps", + "type": "api", + "name": "Google Maps", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + var mapOptions, + map, + uniqIds = [], + i; + + if (tarteaucitron.user.mapscallback === undefined) { + tarteaucitron.user.mapscallback = 'tac_googlemaps_callback'; + } + + tarteaucitron.addScript('//maps.googleapis.com/maps/api/js?v=3.exp&key=' + tarteaucitron.user.googlemapsKey + '&callback='+tarteaucitron.user.mapscallback); + + window.tac_googlemaps_callback = function () { + tarteaucitron.fallback(['googlemaps-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + mapOptions = { + zoom: parseInt(document.getElementById(uniqIds[i]).getAttribute('zoom'), 10), + center: new google.maps.LatLng(parseFloat(document.getElementById(uniqIds[i]).getAttribute('latitude'), 10), parseFloat(document.getElementById(uniqIds[i]).getAttribute('longitude'), 10)) + }; + map = new google.maps.Map(document.getElementById(uniqIds[i]), mapOptions); + } + }; + }, + "fallback": function () { + "use strict"; + var id = 'googlemaps'; + tarteaucitron.fallback(['googlemaps-canvas'], tarteaucitron.engage(id)); + } +}; + +// google tag manager +tarteaucitron.services.googletagmanager = { + "key": "googletagmanager", + "type": "api", + "name": "Google Tag Manager", + "uri": "http://www.google.com/ads/preferences/", + "needConsent": true, + "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', '__gads', '_drt_', 'FLC', 'exchange_uid', 'id', 'fc', 'rrs', 'rds', 'rv', 'uid', 'UIDR', 'UID', 'clid', 'ipinfo', 'acs'], + "js": function () { + "use strict"; + if (tarteaucitron.user.googletagmanagerId === undefined) { + return; + } + window.dataLayer = window.dataLayer || []; + window.dataLayer.push({ + 'gtm.start': new Date().getTime(), + event: 'gtm.js' + }); + tarteaucitron.addScript('//www.googletagmanager.com/gtm.js?id=' + tarteaucitron.user.googletagmanagerId); + } +}; + +// jsapi +tarteaucitron.services.jsapi = { + "key": "jsapi", + "type": "api", + "name": "Google jsapi", + "uri": "http://www.google.com/policies/privacy/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.addScript('//www.google.com/jsapi'); + } +}; + +// linkedin +tarteaucitron.services.linkedin = { + "key": "linkedin", + "type": "social", + "name": "Linkedin", + "uri": "https://www.linkedin.com/legal/cookie_policy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tacLinkedin'], ''); + tarteaucitron.addScript('//platform.linkedin.com/in.js'); + if (tarteaucitron.isAjax === true) { + if (typeof IN !== "undefined") { + IN.parse(); + } + } + }, + "fallback": function () { + "use strict"; + var id = 'linkedin'; + tarteaucitron.fallback(['tacLinkedin'], tarteaucitron.engage(id)); + } +}; + +// mautic +tarteaucitron.services.mautic = { + "key": "mautic", + "type": "analytic", + "name": "Mautic", + "uri": "https://www.mautic.org/privacy-policy/", + "needConsent": true, + "cookies": ['mtc_id', 'mtc_sid'], + "js": function () { + "use strict"; + if (tarteaucitron.user.mauticurl === undefined) { + return; + } + + window['MauticTrackingObject'] = 'mt'; + window['mt'] = window['mt'] || function() { + (window['mt'].q = window['mt'].q || []).push(arguments); + }; + + tarteaucitron.addScript(tarteaucitron.user.mauticurl, '', function() { + mt('send', 'pageview'); + }); + } +}; + +// microsoftcampaignanalytics +tarteaucitron.services.microsoftcampaignanalytics = { + "key": "microsoftcampaignanalytics", + "type": "analytic", + "name": "Microsoft Campaign Analytics", + "uri": "https://privacy.microsoft.com/privacystatement/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.microsoftcampaignanalyticsUUID === undefined) { + return; + } + + tarteaucitron.addScript('//flex.atdmt.com/mstag/site/' + tarteaucitron.user.microsoftcampaignanalyticsUUID + '/mstag.js', 'mstag_tops', function () { + window.mstag = {loadTag : function () {}, time : (new Date()).getTime()}; + window.mstag.loadTag("analytics", {dedup: "1", domainId: tarteaucitron.user.microsoftcampaignanalyticsdomainId, type: "1", actionid: tarteaucitron.user.microsoftcampaignanalyticsactionId}); + }); + } +}; + +// pinterest +tarteaucitron.services.pinterest = { + "key": "pinterest", + "type": "social", + "name": "Pinterest", + "uri": "https://about.pinterest.com/privacy-policy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tacPinterest'], ''); + tarteaucitron.addScript('//assets.pinterest.com/js/pinit.js'); + }, + "fallback": function () { + "use strict"; + var id = 'pinterest'; + tarteaucitron.fallback(['tacPinterest'], tarteaucitron.engage(id)); + } +}; + +// prelinker +tarteaucitron.services.prelinker = { + "key": "prelinker", + "type": "ads", + "name": "Prelinker", + "uri": "http://www.prelinker.com/index/index/cgu/", + "needConsent": true, + "cookies": ['_sp_id.32f5', '_sp_ses.32f5'], + "js": function () { + "use strict"; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['prelinker-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + uri = 'http://promo.easy-dating.org/banner/index?'; + uri += 'site_id=' + document.getElementById(uniqIds[i]).getAttribute('siteId') + '&'; + uri += 'banner_id=' + document.getElementById(uniqIds[i]).getAttribute('bannerId') + '&'; + uri += 'default_language=' + document.getElementById(uniqIds[i]).getAttribute('defaultLanguage') + '&'; + uri += 'tr4ck=' + document.getElementById(uniqIds[i]).getAttribute('trackrt'); + + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'prelinker'; + tarteaucitron.fallback(['prelinker-canvas'], tarteaucitron.engage(id)); + } +}; + +// prezi +tarteaucitron.services.prezi = { + "key": "prezi", + "type": "video", + "name": "Prezi", + "uri": "https://prezi.com/privacy-policy/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['prezi-canvas'], function (x) { + var id = x.getAttribute("data-id"), + width = x.getAttribute("width"), + height = x.getAttribute("height"), + url = 'https://prezi.com/embed/' + id + '/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0'; + + return ''; + }); + }, + "fallback": function () { + "use strict"; + var id = 'prezi'; + tarteaucitron.fallback(['prezi-canvas'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// pubdirecte +tarteaucitron.services.pubdirecte = { + "key": "pubdirecte", + "type": "ads", + "name": "Pubdirecte", + "uri": "http://pubdirecte.com/contact.php", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['pubdirecte-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + uri = '//www.pubdirecte.com/script/banniere.php?'; + uri += 'id=' + document.getElementById(uniqIds[i]).getAttribute('pid') + '&'; + uri += 'ref=' + document.getElementById(uniqIds[i]).getAttribute('ref'); + + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'pubdirecte'; + tarteaucitron.fallback(['pubdirecte-canvas'], tarteaucitron.engage(id)); + } +}; + +// purechat +tarteaucitron.services.purechat = { + "key": "purechat", + "type": "support", + "name": "PureChat", + "uri": "https://www.purechat.com/privacy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.purechatId === undefined) { + return; + } + + tarteaucitron.addScript('//app.purechat.com/VisitorWidget/WidgetScript', '', function () { + try { + window.w = new PCWidget({ c: tarteaucitron.user.purechatId, f: true }); + } catch (e) {} + }); + } +}; + +// shareaholic +tarteaucitron.services.shareaholic = { + "key": "shareaholic", + "type": "social", + "name": "Shareaholic", + "uri": "https://shareaholic.com/privacy/choices", + "needConsent": true, + "cookies": ['__utma', '__utmb', '__utmc', '__utmz', '__utmt_Shareaholic%20Pageviews'], + "js": function () { + "use strict"; + if (tarteaucitron.user.shareaholicSiteId === undefined) { + return; + } + + tarteaucitron.fallback(['shareaholic-canvas'], ''); + tarteaucitron.addScript('//dsms0mj1bbhn4.cloudfront.net/assets/pub/shareaholic.js', '', function () { + try { + Shareaholic.init(tarteaucitron.user.shareaholicSiteId); + } catch (e) {} + }); + }, + "fallback": function () { + "use strict"; + var id = 'shareaholic'; + tarteaucitron.fallback(['shareaholic-canvas'], tarteaucitron.engage(id)); + } +}; + +// shareasale +tarteaucitron.services.shareasale = { + "key": "shareasale", + "type": "ads", + "name": "ShareASale", + "uri": "https://www.shareasale.com/PrivacyPolicy.pdf", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + var uniqIds = [], + i, + uri; + + tarteaucitron.fallback(['shareasale-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + return '
';
+ });
+
+ for (i = 0; i < uniqIds.length; i += 1) {
+ uri = 'https://shareasale.com/sale.cfm?';
+ uri += 'amount=' + document.getElementById(uniqIds[i]).getAttribute('amount') + '&';
+ uri += 'tracking=' + document.getElementById(uniqIds[i]).getAttribute('tracking') + '&';
+ uri += 'transtype=' + document.getElementById(uniqIds[i]).getAttribute('transtype') + '&';
+ uri += 'persale=' + document.getElementById(uniqIds[i]).getAttribute('persale') + '&';
+ uri += 'perlead=' + document.getElementById(uniqIds[i]).getAttribute('perlead') + '&';
+ uri += 'perhit=' + document.getElementById(uniqIds[i]).getAttribute('perhit') + '&';
+ uri += 'merchantID=' + document.getElementById(uniqIds[i]).getAttribute('merchantID');
+
+ document.getElementById(uniqIds[i]).innerHTML = '';
+ }
+ },
+ "fallback": function () {
+ "use strict";
+ var id = 'shareasale';
+ tarteaucitron.fallback(['shareasale-canvas'], tarteaucitron.engage(id));
+ }
+};
+
+// sharethis
+tarteaucitron.services.sharethis = {
+ "key": "sharethis",
+ "type": "social",
+ "name": "ShareThis",
+ "uri": "http://www.sharethis.com/legal/privacy/",
+ "needConsent": true,
+ "cookies": ['__unam'],
+ "js": function () {
+ "use strict";
+ if (tarteaucitron.user.sharethisPublisher === undefined) {
+ return;
+ }
+ var switchTo5x = true,
+ uri = ('https:' === document.location.protocol ? 'https://ws' : 'http://w') + '.sharethis.com/button/buttons.js';
+
+ tarteaucitron.fallback(['tacSharethis'], '');
+ tarteaucitron.addScript(uri, '', function () {
+ stLight.options({publisher: tarteaucitron.user.sharethisPublisher, doNotHash: false, doNotCopy: false, hashAddressBar: false});
+ });
+
+ if (tarteaucitron.isAjax === true) {
+ if (typeof stButtons !== "undefined") {
+ stButtons.locateElements();
+ }
+ }
+ },
+ "fallback": function () {
+ "use strict";
+ var id = 'sharethis';
+ tarteaucitron.fallback(['tacSharethis'], tarteaucitron.engage(id));
+ }
+};
+
+// slideshare
+tarteaucitron.services.slideshare = {
+ "key": "slideshare",
+ "type": "video",
+ "name": "SlideShare",
+ "uri": "https://www.linkedin.com/legal/privacy-policy",
+ "needConsent": true,
+ "cookies": [],
+ "js": function () {
+ "use strict";
+ tarteaucitron.fallback(['slideshare-canvas'], function (x) {
+ var id = x.getAttribute("data-id"),
+ width = x.getAttribute("width"),
+ height = x.getAttribute("height"),
+ url = '//www.slideshare.net/slideshow/embed_code/' + id;
+
+ return '';
+ });
+ },
+ "fallback": function () {
+ "use strict";
+ var id = 'slideshare';
+ tarteaucitron.fallback(['slideshare-canvas'], function (elem) {
+ elem.style.width = elem.getAttribute('width') + 'px';
+ elem.style.height = elem.getAttribute('height') + 'px';
+ return tarteaucitron.engage(id);
+ });
+ }
+};
+
+// statcounter
+tarteaucitron.services.statcounter = {
+ "key": "statcounter",
+ "type": "analytic",
+ "name": "StatCounter",
+ "uri": "https://fr.statcounter.com/about/legal/#privacy",
+ "needConsent": true,
+ "cookies": ['sc_is_visitor_unique'],
+ "js": function () {
+ "use strict";
+ var uniqIds = [],
+ i,
+ uri = '//statcounter.com/counter/counter.js';
+
+ tarteaucitron.fallback(['statcounter-canvas'], function (x) {
+ var uniqId = '_' + Math.random().toString(36).substr(2, 9);
+ uniqIds.push(uniqId);
+ return '
'; + }); + + for (i = 0; i < uniqIds.length; i += 1) { + tarteaucitron.makeAsync.init(uri, uniqIds[i]); + } + }, + "fallback": function () { + "use strict"; + var id = 'statcounter'; + tarteaucitron.fallback(['statcounter-canvas'], tarteaucitron.engage(id)); + } +}; + +// timelinejs +tarteaucitron.services.timelinejs = { + "key": "timelinejs", + "type": "api", + "name": "Timeline JS", + "uri": "http://timeline.knightlab.com/#help", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['timelinejs-canvas'], function (x) { + var spreadsheet_id = x.getAttribute("spreadsheet_id"), + width = x.getAttribute("width"), + height = x.getAttribute("height"), + lang = x.getAttribute("lang_2_letter"), + font = x.getAttribute("font"), + map = x.getAttribute("map"), + start_at_end = x.getAttribute("start_at_end"), + hash_bookmark = x.getAttribute("hash_bookmark"), + start_at_slide = x.getAttribute("start_at_slide"), + start_zoom = x.getAttribute("start_zoom"), + url = '//cdn.knightlab.com/libs/timeline/latest/embed/index.html?source=' + spreadsheet_id + '&font=' + font + '&maptype=' + map + '&lang=' + lang + '&start_at_end=' + start_at_end + '&hash_bookmark=' + hash_bookmark + '&start_at_slide=' + start_at_slide + '&start_zoom_adjust=' + start_zoom + '&height=' + height; + + return ''; + }); + }, + "fallback": function () { + "use strict"; + var id = 'timelinejs'; + tarteaucitron.fallback(['timelinejs-canvas'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// typekit +tarteaucitron.services.typekit = { + "key": "typekit", + "type": "api", + "name": "Typekit (adobe)", + "uri": "http://www.adobe.com/fr/privacy.html", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.typekitId === undefined) { + return; + } + tarteaucitron.addScript('//use.typekit.net/' + tarteaucitron.user.typekitId + '.js', '', function () { + try { + Typekit.load(); + } catch (e) {} + }); + } +}; + +// twenga +tarteaucitron.services.twenga = { + "key": "twenga", + "type": "ads", + "name": "Twenga", + "uri": "http://www.twenga.com/privacy.php", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + + if (tarteaucitron.user.twengaId === undefined || tarteaucitron.user.twengaLocale === undefined) { + return; + } + + tarteaucitron.addScript('//tracker.twenga.' + tarteaucitron.user.twengaLocale + '/st/tracker_' + tarteaucitron.user.twengaId + '.js'); + } +}; + +// twitter +tarteaucitron.services.twitter = { + "key": "twitter", + "type": "social", + "name": "Twitter", + "uri": "https://support.twitter.com/articles/20170514", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tacTwitter'], ''); + tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs'); + }, + "fallback": function () { + "use strict"; + var id = 'twitter'; + tarteaucitron.fallback(['tacTwitter'], tarteaucitron.engage(id)); + } +}; + +// twitter embed +tarteaucitron.services.twitterembed = { + "key": "twitterembed", + "type": "social", + "name": "Twitter (cards)", + "uri": "https://support.twitter.com/articles/20170514", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + var uniqIds = [], + i, + e, + html; + + tarteaucitron.fallback(['twitterembed-canvas'], function (x) { + var uniqId = '_' + Math.random().toString(36).substr(2, 9); + uniqIds.push(uniqId); + html = '
'; + return html; + }); + + tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs', function () { + for (i = 0; i < uniqIds.length; i += 1) { + e = document.getElementById(uniqIds[i]); + twttr.widgets.createTweet( + e.getAttribute('tweetid'), + e, + { + theme: e.getAttribute('theme'), + cards: e.getAttribute('cards'), + conversation: e.getAttribute('conversation'), + lang: tarteaucitron.getLanguage(), + dnt: true, + width: e.getAttribute('data-width'), + align: e.getAttribute('data-align') + } + ); + } + }); + }, + "fallback": function () { + "use strict"; + var id = 'twitterembed'; + tarteaucitron.fallback(['twitterembed-canvas'], function (elem) { + elem.style.width = elem.getAttribute('data-width') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// twitter timeline +tarteaucitron.services.twittertimeline = { + "key": "twittertimeline", + "type": "social", + "name": "Twitter (timelines)", + "uri": "https://support.twitter.com/articles/20170514", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['tacTwitterTimelines'], ''); + tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs'); + }, + "fallback": function () { + "use strict"; + var id = 'twittertimeline'; + tarteaucitron.fallback(['tacTwitterTimelines'], tarteaucitron.engage(id)); + } +}; + +// user voice +tarteaucitron.services.uservoice = { + "key": "uservoice", + "type": "support", + "name": "UserVoice", + "uri": "https://www.uservoice.com/privacy/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.userVoiceApi === undefined) { + return; + } + tarteaucitron.addScript('//widget.uservoice.com/' + tarteaucitron.user.userVoiceApi + '.js'); + } +}; + +// vimeo +tarteaucitron.services.vimeo = { + "key": "vimeo", + "type": "video", + "name": "Vimeo", + "uri": "http://vimeo.com/privacy", + "needConsent": true, + "cookies": ['__utmt_player', '__utma', '__utmb', '__utmc', '__utmv', 'vuid', '__utmz', 'player'], + "js": function () { + "use strict"; + tarteaucitron.fallback(['vimeo_player'], function (x) { + var video_id = x.getAttribute("videoID"), + video_width = x.getAttribute("width"), + frame_width = 'width=', + video_height = x.getAttribute("height"), + frame_height = 'height=', + video_frame; + + if (video_id === undefined) { + return ""; + } + if (video_width !== undefined) { + frame_width += '"' + video_width + '" '; + } else { + frame_width += '"" '; + } + if (video_height !== undefined) { + frame_height += '"' + video_height + '" '; + } else { + frame_height += '"" '; + } + video_frame = ''; + return video_frame; + }); + }, + "fallback": function () { + "use strict"; + var id = 'vimeo'; + tarteaucitron.fallback(['vimeo_player'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// visualrevenue +tarteaucitron.services.visualrevenue = { + "key": "visualrevenue", + "type": "analytic", + "name": "VisualRevenue", + "uri": "http://www.outbrain.com/legal/privacy-713/", + "needConsent": true, + "cookies": ['__vrf', '__vrm', '__vrl', '__vry', '__vru', '__vrid', '__vrz'], + "js": function () { + "use strict"; + if (tarteaucitron.user.visualrevenueId === undefined) { + return; + } + window._vrq = window._vrq || []; + window._vrq.push(['id', tarteaucitron.user.visualrevenueId]); + window._vrq.push(['automate', true]); + window._vrq.push(['track', function () {}]); + tarteaucitron.addScript('http://a.visualrevenue.com/vrs.js'); + } +}; + +// vshop +tarteaucitron.services.vshop = { + "key": "vshop", + "type": "ads", + "name": "vShop", + "uri": "http://vshop.fr/privacy-policy", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + tarteaucitron.fallback(['vcashW'], ''); + tarteaucitron.addScript('//vshop.fr/js/w.js'); + }, + "fallback": function () { + "use strict"; + var id = 'vshop'; + tarteaucitron.fallback(['vcashW'], tarteaucitron.engage(id)); + } +}; + +// wysistat +tarteaucitron.services.wysistat = { + "key": "wysistat", + "type": "analytic", + "name": "Wysistat", + "uri": "http://wysistat.net/contact/", + "needConsent": true, + "cookies": ['Wysistat'], + "js": function () { + "use strict"; + if (tarteaucitron.user.wysistat === undefined) { + return; + } + tarteaucitron.addScript('//www.wysistat.com/statistique.js', '', function () { + window.stat(tarteaucitron.user.wysistat.cli, tarteaucitron.user.wysistat.frm, tarteaucitron.user.wysistat.prm, tarteaucitron.user.wysistat.ce, tarteaucitron.user.wysistat.page, tarteaucitron.user.wysistat.roi, tarteaucitron.user.wysistat.prof, tarteaucitron.user.wysistat.cpt); + }); + } +}; + +// xiti +tarteaucitron.services.xiti = { + "key": "xiti", + "type": "analytic", + "name": "Xiti", + "uri": "http://www.atinternet.com/politique-du-respect-de-la-vie-privee/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + if (tarteaucitron.user.xitiId === undefined) { + return; + } + var Xt_param = 's=' + tarteaucitron.user.xitiId + '&p=', + Xt_r, + Xt_h, + Xt_i, + Xt_s, + div = document.createElement('div'); + try { + Xt_r = top.document.referrer; + } catch (e) { + Xt_r = document.referrer; + } + Xt_h = new Date(); + Xt_i = '
= 4) { + Xt_s = screen; + Xt_i += '&r=' + Xt_s.width + 'x' + Xt_s.height + 'x' + Xt_s.pixelDepth + 'x' + Xt_s.colorDepth; + } + + div.innerHTML = Xt_i + '&ref=' + Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$') + '" title="Internet Audience">'; + document.getElementsByTagName('body')[0].appendChild(div.firstChild); + + if (typeof tarteaucitron.user.xitiMore === 'function') { + tarteaucitron.user.xitiMore(); + } + } +}; + +// youtube +tarteaucitron.services.youtube = { + "key": "youtube", + "type": "video", + "name": "YouTube", + "uri": "https://www.google.fr/intl/fr/policies/privacy/", + "needConsent": true, + "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'], + "js": function () { + "use strict"; + tarteaucitron.fallback(['youtube_player'], function (x) { + var video_id = x.getAttribute("videoID"), + video_width = x.getAttribute("width"), + frame_width = 'width=', + video_height = x.getAttribute("height"), + frame_height = 'height=', + video_frame, + params = 'theme=' + x.getAttribute("theme") + '&rel=' + x.getAttribute("rel") + '&controls=' + x.getAttribute("controls") + '&showinfo=' + x.getAttribute("showinfo") + '&autoplay=' + x.getAttribute("autoplay"); + + if (video_id === undefined) { + return ""; + } + if (video_width !== undefined) { + frame_width += '"' + video_width + '" '; + } else { + frame_width += '"" '; + } + if (video_height !== undefined) { + frame_height += '"' + video_height + '" '; + } else { + frame_height += '"" '; + } + video_frame = ''; + return video_frame; + }); + }, + "fallback": function () { + "use strict"; + var id = 'youtube'; + tarteaucitron.fallback(['youtube_player'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// youtube playlist +tarteaucitron.services.youtubeplaylist = { + "key": "youtubeplaylist", + "type": "video", + "name": "YouTube (playlist)", + "uri": "https://www.google.fr/intl/fr/policies/privacy/", + "needConsent": true, + "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'], + "js": function () { + "use strict"; + tarteaucitron.fallback(['youtube_playlist_player'], function (x) { + var playlist_id = x.getAttribute("playlistID"), + video_width = x.getAttribute("width"), + frame_width = 'width=', + video_height = x.getAttribute("height"), + frame_height = 'height=', + video_frame, + params = 'theme=' + x.getAttribute("theme") + '&rel=' + x.getAttribute("rel") + '&controls=' + x.getAttribute("controls") + '&showinfo=' + x.getAttribute("showinfo") + '&autoplay=' + x.getAttribute("autoplay"); + + if (playlist_id === undefined) { + return ""; + } + if (video_width !== undefined) { + frame_width += '"' + video_width + '" '; + } else { + frame_width += '"" '; + } + if (video_height !== undefined) { + frame_height += '"' + video_height + '" '; + } else { + frame_height += '"" '; + } + video_frame = ''; + return video_frame; + }); + }, + "fallback": function () { + "use strict"; + var id = 'youtubeplaylist'; + tarteaucitron.fallback(['youtube_playlist_player'], function (elem) { + elem.style.width = elem.getAttribute('width') + 'px'; + elem.style.height = elem.getAttribute('height') + 'px'; + return tarteaucitron.engage(id); + }); + } +}; + +// zopim +tarteaucitron.services.zopim = { + "key": "zopim", + "type": "support", + "name": "Zopim", + "uri": "https://www.zopim.com/privacy", + "needConsent": true, + "cookies": ['__zlcid', '__zprivacy'], + "js": function () { + "use strict"; + if (tarteaucitron.user.zopimID === undefined) { + return; + } + tarteaucitron.addScript('//v2.zopim.com/?' + tarteaucitron.user.zopimID); + } +}; + +// xiti smartTag +tarteaucitron.services.xiti_smarttag = { + "key": "xiti_smarttag", + "type": "analytic", + "name": "Xiti (SmartTag)", + "uri": "https://www.atinternet.com/societe/protection-des-donnees/", + "needConsent": true, + "cookies": ["atidvisitor", "atreman", "atredir", "atsession", "atuserid", "attvtreman", "attvtsession"], + "js": function () { + "use strict"; + if (tarteaucitron.user.xiti_smarttagLocalPath !== undefined) { + tarteaucitron.addScript(tarteaucitron.user.xiti_smarttagLocalPath, 'smarttag', null, null, "onload", "addTracker();"); + } else { + var xitiSmarttagId = tarteaucitron.user.xiti_smarttagSiteId; + if (xitiSmarttagId === undefined) { + return; + } + + tarteaucitron.addScript('//tag.aticdn.net/' + xitiSmarttagId + '/smarttag.js', 'smarttag', null, null, "onload", "addTracker();"); + } + } +}; + +// facebook pixel +tarteaucitron.services.facebookpixel = { + "key": "facebookpixel", + "type": "ads", + "name": "Facebook Pixel", + "uri": "https://fr-fr.facebook.com/business/help/www/651294705016616", + "needConsent": true, + "cookies": ['datr', 'fr', 'reg_ext_ref', 'reg_fb_gate', 'reg_fb_ref', 'sb', 'wd', 'x-src'], + "js": function () { + "use strict"; + var n; + if(window.fbq)return; + n=window.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ; + if(!window._fbq)window._fbq=n; + n.push=n; + n.loaded=!0; + n.version='2.0'; + n.queue=[]; + tarteaucitron.addScript('https://connect.facebook.net/en_US/fbevents.js'); + fbq('init', tarteaucitron.user.facebookpixelId); + fbq('track', 'PageView'); + + if (typeof tarteaucitron.user.facebookpixelMore === 'function') { + tarteaucitron.user.facebookpixelMore(); + } + } +}; \ No newline at end of file diff --git a/docs/pages/home.md b/docs/pages/home.md new file mode 100644 index 0000000..ced7e4d --- /dev/null +++ b/docs/pages/home.md @@ -0,0 +1,18 @@ ++
+ Easy access to Météo-France weather models and data +
+
+
+
+ +# Welcome to the documentation + +* Want to know why does **Meteole** exist? :arrow_right: [Why use Meteole?](why.md) +* Want to get started? :arrow_right: [User Guide](how_to.md) + +**Meteole** is automatically tested with: + + \ No newline at end of file diff --git a/docs/pages/how_to.md b/docs/pages/how_to.md new file mode 100644 index 0000000..27d1774 --- /dev/null +++ b/docs/pages/how_to.md @@ -0,0 +1,144 @@ +## Installation + +Ensure that you have correctly installed **Meteole** before (check [Installation page](installation.md) for details) + +```python +pip install meteole +``` + +## Get a token, an API key or an application ID + +1. Create an account on [the Météo-France API portal](https://portail-api.meteofrance.fr/). +2. Subscribe to the desired services (Arome, Arpege, etc.). +3. Retrieve the API token (or key) by going to “Mes APIs” and then Générer token”. + +> 💡 +> +> Using an APPLICATION_ID allows for token auto-refresh. It avoids re-generating a token or an API key when it is expired. +> +> Find your APPLICATION_ID in your [API dashboard](https://portail-api.meteofrance.fr/web/fr/dashboard) > "Générer Token". +> +> Then checkout the `curl` field at the bottom of the page that looks like that: +> ```bash +> curl -k -X POST https://portail-api.meteofrance.fr/token -d "grant_type=client_credentials" -H "Authorization: Basic ktDvFBDP8w6jGfKuK4yB1nS6oLOK4bfoFwEqmANOIvNMF8vG6B51tgJeZQcOO1d3qYyK" +> ``` +> +> The string that comes rights after "Basic" is your APPLICATION_ID (`ktDvFBDP8w6jGfKuK4yB1nS6oLOK4bfoFwEqmANOIvNMF8vG6B51tgJeZQcOO1d3qYyK` in this example) + +## Get the latest vigilance bulletin + +Meteo France offers a vigilance bulletin that provides nationwide predictions of potential weather risks. + +For data usage, access the predicted phenomena to trigger modeling based on the forecasts. + +```python +from meteole import Vigilance + +# application_id: get it on Météo-France portal +client = Vigilance(application_id=APPLICATION_ID) + +df_phenomenon, df_timelaps = client.get_phenomenon() + +# Fetch vigilance bulletins +textes_vigilance = client.get_textes_vigilance() + +# Display the vigilance vignette +client.get_vignette() +``` + + + +> More details about Vigilance Bulletin in [the official Meteo France Documentation](https://donneespubliques.meteofrance.fr/?fond=produit&id_produit=305&id_rubrique=50) + +## Get AROME or ARPEGE data + +The flagship weather forecasting models of Météo-France are accessible via the Météo-France APIs. + +| Characteristics | AROME | ARPEGE | +|------------------|----------------------|----------------------| +| Resolution | 1.3 km | 10 km | +| Update Frequency | Every 3 hours | Every 6 hours | +| Forecast Range | Up to 51 hours | Up to 114 hours | + +```python +from meteole import arome + +arome_client = arome.AromeForecast(application_id=APPLICATION_ID) # api_key found on portail.meteo-france.Fr + +# get all available coverages +# coverage: a string containing indicator + run +capabilities = arome_client.get_capabilities() + +# fetch a valid coverage_id for WIND_GUST +indicator = 'V_COMPONENT_OF_WIND_GUST__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND' +coverage_id = capabilities[capabilities['indicator'] == indicator]['id'].iloc[0] + +# get the data +# (params heights and forecast_horizons default to their first allowed value) +df_arome = arome_client.get_coverage(coverage_id) +``` + +## Advanced guide: coverages + +### Introduction + +Understanding coverages is a must to have a comprehensive usage of Météo-France forecasting models like AROME or ARPEGE. + +A coverageid looks like that: + +> WIND_SPEED__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND___2024-01-16T09.00.00Z + +It contains several information in a single string: + +- WIND_SPEED: Indicates that the data pertains to wind speed. +- SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND: Specifies that the measurement is taken at a particular height above the ground. +- 2024-01-16T09.00.00Z: Represents the date and time of the measurement, in ISO 8601 format (January 16, 2024, at 09:00 UTC). + +### Time-series coverages + +Some coverages can contain an additional suffix: + +> TEMPERATURE__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND___2024-01-16T09.00.00Z_PT1H + +`PT1H` Specifies the interval, meaning the data is provided at 1-hour intervals. + +When no interval is specified, it means coverage returns a single datapoint instead of a timeseries. + +### Height + +Atmospheric parameters can be measured at various heights and pressure levels, providing comprehensive data for weather analysis and forecasting. In consequence, some coverages must be queried with a `height` parameter. + +To get the list of available `height` parameters, use the function `get_coverage_description` as described in the example below. + +```python +from meteole import arome + +arome_client = arome.AromeForecast(application_id=APPLICATION_ID) # api_key found on portail.meteo-france.Fr + +# get all available coverage ids with `get_capabilities` +capabilities = arome_client.get_capabilities() + +# fetch a valid coverage_id for WIND_GUST +indicator = 'V_COMPONENT_OF_WIND_GUST__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND' +coverage_id = capabilities[capabilities['indicator'] == indicator]['id'].iloc[0] + +# get the description of the coverage +coverage_axis = arome.get_coverage_description(random_coverage_id) + +# retrieve the available heights +coverage_axis['heights'] +``` + +Similarly, the AROME and ARPEGE can have different time step forecast prediction depending on the indicator. + +For example: + +- `TODO` is defined every horu for the next 114 hours. +- `TODO` is defined every hour for the next 51 hours, and then every 3 hours. + +Get the list of the available `forecast_horizons` using, once again, `get_coverage_description`. + +```python +# retrieve the available times +coverage_axis['times'] +``` diff --git a/docs/pages/index.html b/docs/pages/index.html new file mode 100644 index 0000000..f46aa61 --- /dev/null +++ b/docs/pages/index.html @@ -0,0 +1,115 @@ + + + +
+ + + + + + + + + + +
+ + + + +
+ +