mirror of
https://github.com/NohamR/AnnabacPro.git
synced 2025-05-24 14:21:56 +00:00
1.0
This commit is contained in:
commit
4b4b65672c
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
.DS_Store
|
0
background.js
Normal file
0
background.js
Normal file
68
load.js
Normal file
68
load.js
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
function fetchAndModifyContent(url) {
|
||||||
|
fetch(url)
|
||||||
|
.then(response => {
|
||||||
|
if (response.ok) {
|
||||||
|
return response.text();
|
||||||
|
}
|
||||||
|
throw new Error(`Failed to fetch: ${response.statusText}`);
|
||||||
|
})
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const doc = parser.parseFromString(html, 'text/html');
|
||||||
|
|
||||||
|
const innerContentMain = doc.querySelector('.inner-content-main');
|
||||||
|
const innerContent = innerContentMain.querySelector('.inner-content');
|
||||||
|
|
||||||
|
if (innerContent) {
|
||||||
|
let innerContentText = Array.from(innerContent.childNodes)
|
||||||
|
.map(node => node.outerHTML || node.nodeValue)
|
||||||
|
.join('');
|
||||||
|
|
||||||
|
innerContentText = innerContentText.replace(/\/modules-assets\//g, "https://www.annabac.com/modules-assets/");
|
||||||
|
|
||||||
|
innerContentText = innerContentText.replace(/<script[^>]*src="https:\/\/cdn\.mathjax\.org\/mathjax\/latest\/MathJax\.js\?config=TeX-AMS-MML_HTMLorMML"[^>]*><\/script>/g, '');
|
||||||
|
|
||||||
|
innerContentText = innerContentText.replace(/<link[^>]*href="https:\/\/www\.annabac\.com\/modules-assets\/styles\/commonAnnabac2020\.css"[^>]*>/g, '');
|
||||||
|
innerContentText = innerContentText.replace(/<link[^>]*href="https:\/\/www\.annabac\.com\/modules-assets\/styles\/9782401064171_metabase_Phy_Chim_Term\.css"[^>]*>/g, '');
|
||||||
|
|
||||||
|
assignContent(innerContentText);
|
||||||
|
} else {
|
||||||
|
console.log('Inner content not found');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => console.error(error));
|
||||||
|
}
|
||||||
|
|
||||||
|
function assignContent(content) {
|
||||||
|
const html = `
|
||||||
|
<html lang=en><meta charset=utf-8><meta content=width name=MobileOptimized><meta content=true name=HandheldFriendly><meta content="width=device-width,initial-scale=1"name=viewport><meta content=1 name=tdm-reservation><link href=/themes/annabac/css/kits/Barlow/Barlow-Regular.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-Regular.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-Medium.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-Medium.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-SemiBold.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-SemiBold.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-Bold.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/Barlow/Barlow-Bold.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Regular.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Regular.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Medium.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Medium.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Bold.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Bold.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Black.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Black.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/SourceSansPro/SourceSansPro-Light.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/SourceSansPro/SourceSansPro-Light.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/SourceSansPro/SourceSansPro-SemiBold.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/SourceSansPro/SourceSansPro-SemiBold.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSans/NotoSans.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSans/NotoSans.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSans/NotoSans-Bold.woff2 rel=preload type=font/woff2 as=font crossorigin=anonymous><link href=/themes/annabac/css/kits/NotoSans/NotoSans-Bold.woff rel=preload type=font/woff as=font crossorigin=anonymous><link href=/themes/annabac/favicon.ico rel=icon type=image/vnd.microsoft.icon><link href=/favicon.svg rel=icon type=image/svg+xml><link href=/apple-touch-icon.png rel=apple-touch-icon><title>Viewer</title><link href=/sites/default/files/css/css_O1tIcSpEgE7I8N4GL6RivW4rix6rdDGFZRTjON3wT10.css rel=stylesheet media=all><link href=/sites/default/files/css/css_CuKThgTGcMd_QmmbYhtoXfaZSaEc566sX6eNnljhoCc.css rel=stylesheet media=all><link href=/modules-assets/styles/commonAnnabac.css?s7cjwy rel=stylesheet media=all><div class=inner-content data-nosnippet="">${content}</div></body></html>
|
||||||
|
`;
|
||||||
|
console.log('page opened');
|
||||||
|
|
||||||
|
const newWindow = window.open();
|
||||||
|
newWindow.location.href = "about:blank";
|
||||||
|
newWindow.document.write(html);
|
||||||
|
newWindow.document.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// const currentUrl = window.location.href;
|
||||||
|
// fetchAndModifyContent(currentUrl);
|
||||||
|
|
||||||
|
function replaceLinks() {
|
||||||
|
var links = document.querySelectorAll('.parcours-revision-inner a');
|
||||||
|
|
||||||
|
links.forEach(link => {
|
||||||
|
var button = document.createElement('button');
|
||||||
|
button.textContent = link.textContent;
|
||||||
|
|
||||||
|
button.addEventListener('click', function() {
|
||||||
|
var url = link.href;
|
||||||
|
fetchAndModifyContent(url);
|
||||||
|
});
|
||||||
|
|
||||||
|
link.parentNode.replaceChild(button, link);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
replaceLinks();
|
27
manifest.json
Normal file
27
manifest.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"manifest_version": 3,
|
||||||
|
"name": "AnnabacPro",
|
||||||
|
"version": "1.0",
|
||||||
|
"description": "Débloque tous les articales sur Annabac gratuitement",
|
||||||
|
"permissions": [
|
||||||
|
"activeTab",
|
||||||
|
"storage"
|
||||||
|
],
|
||||||
|
"action": {
|
||||||
|
"default_popup": "popup.html",
|
||||||
|
"default_icon": {
|
||||||
|
"16": "images/icon16.png",
|
||||||
|
"48": "images/icon48.png",
|
||||||
|
"128": "images/icon128.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"background": {
|
||||||
|
"service_worker": "background.js"
|
||||||
|
},
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"matches": ["*://www.annabac.com/*"],
|
||||||
|
"js": ["load.js"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
18
popup.html
Normal file
18
popup.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>AnnabacPro</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>AnnabacPro</h1>
|
||||||
|
Fait par <a href="#" id="redirectButton1">√(noham)²</a>
|
||||||
|
<br>
|
||||||
|
repo : <a href="#" id="redirectButton2">AnnabacPro</a>
|
||||||
|
<script src="popup.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
13
popup.js
Normal file
13
popup.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// popup.js
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
var redirectButton1 = document.getElementById('redirectButton1');
|
||||||
|
redirectButton1.addEventListener('click', function () {
|
||||||
|
window.open('https://nohamr.github.io', '_blank');
|
||||||
|
});
|
||||||
|
var redirectButton2 = document.getElementById('redirectButton2');
|
||||||
|
redirectButton2.addEventListener('click', function () {
|
||||||
|
window.open('https://github.com/NohamR/AnnabacPro', '_blank');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
68
test.py
Normal file
68
test.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
import requests
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
url = 'https://www.annabac.com/annales-bac/acidification-de-l-ocean'
|
||||||
|
response = requests.get(url, verify=False)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
soup = BeautifulSoup(response.text, 'html.parser')
|
||||||
|
|
||||||
|
inner_content = soup.find('div', class_='inner-content')
|
||||||
|
|
||||||
|
if inner_content:
|
||||||
|
inner_content_text = ''.join(map(str, inner_content.contents))
|
||||||
|
inner_content_text = inner_content_text.replace("/modules-assets/", "https://www.annabac.com/modules-assets/")
|
||||||
|
model = f"""
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="description" content="Préparez et révisez les examens du Brevet au Bac avec Annabac. Consultez les annales, fiches de cours, corrigés, cours audio et vidéo de la 3e à la Terminale.">
|
||||||
|
<meta name="MobileOptimized" content="width">
|
||||||
|
<meta name="HandheldFriendly" content="true">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="tdm-reservation" content="1">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Regular.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Regular.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Medium.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Medium.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-SemiBold.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-SemiBold.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Bold.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/Barlow/Barlow-Bold.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Regular.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Regular.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Medium.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Medium.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Bold.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Bold.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Black.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSansSC/NotoSansSC-Black.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/SourceSansPro/SourceSansPro-Light.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/SourceSansPro/SourceSansPro-Light.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/SourceSansPro/SourceSansPro-SemiBold.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/SourceSansPro/SourceSansPro-SemiBold.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSans/NotoSans.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSans/NotoSans.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSans/NotoSans-Bold.woff2" type="font/woff2" crossorigin="anonymous">
|
||||||
|
<link rel="preload" as="font" href="/themes/annabac/css/kits/NotoSans/NotoSans-Bold.woff" type="font/woff" crossorigin="anonymous">
|
||||||
|
<link rel="icon" href="/themes/annabac/favicon.ico" type="image/vnd.microsoft.icon">
|
||||||
|
<link type="image/svg+xml" rel="icon" href="/favicon.svg">
|
||||||
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||||
|
<title>Sens d’évolution d’un système acide-base - Constitution et transformations de la matière - Physique | Annabac</title>
|
||||||
|
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_O1tIcSpEgE7I8N4GL6RivW4rix6rdDGFZRTjON3wT10.css">
|
||||||
|
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_CuKThgTGcMd_QmmbYhtoXfaZSaEc566sX6eNnljhoCc.css">
|
||||||
|
<link rel="stylesheet" media="all" href="/modules-assets/styles/commonAnnabac.css?s7cjwy" />
|
||||||
|
<head>
|
||||||
|
<body>
|
||||||
|
<div class="inner-content" data-nosnippet="">
|
||||||
|
{inner_content_text}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
"""
|
||||||
|
with open('filefiletest.html', 'w') as f:
|
||||||
|
f.write(model)
|
||||||
|
else:
|
||||||
|
print("Balise 'inner-content' non trouvée sur la page.")
|
||||||
|
else:
|
||||||
|
print(f"La requête a échoué avec le code d'état {response.status_code}.")
|
Loading…
x
Reference in New Issue
Block a user