4chan-XZ/index.html
2023-04-22 05:33:23 +02:00

451 lines
17 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>4chan X</title>
<link rel="stylesheet" href="web.css" />
<link rel="icon" href="img/icon.gif" />
<link
rel="chrome-webstore-item"
href="https://chrome.google.com/webstore/detail/ohnjgmpcibpbafdlkimncjhflgedgpam"
/>
</head>
<body>
<div id="header">
<h1 id="4chan-x">4chan X</h1>
<div id="links">
<a href="https://github.com/ccd0/4chan-x">Source Code</a>
<a href="https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md"
>Changelog</a
>
<a
href="https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions"
>FAQ</a
>
<a href="https://github.com/ccd0/4chan-x/wiki/Privacy">Privacy</a>
<a href="https://github.com/ccd0/4chan-x/issues">Report Bugs</a>
</div>
</div>
<a class="screenshot" href="img/screenshot.png"
><img src="img/screenshot.png" alt="Screenshot"
/></a>
<p>
4chan X is a script that adds various features to anonymous imageboards.
It was originally developed for 4chan but has no affiliation with it.
</p>
<p>
It was previously developed by
<a href="https://github.com/aeosynth/4chan-x">aeosynth</a>,
<a href="https://github.com/MayhemYDG/4chan-x">Mayhem</a>,
<a href="https://github.com/ihavenoface/4chan-x">ihavenoface</a>,
<a href="https://github.com/zixaphir/appchan-x">Zixaphir</a>,
<a href="https://github.com/seaweedchan/4chan-x">Seaweed</a>, and
<a href="https://github.com/Spittie/4chan-x">Spittie</a>, with
contributions from many others.
</p>
<p>
If you're looking for a maintained fork of OneeChan (a style script used
in addition to 4chan X), try
<a href="https://github.com/KevinParnell/OneeChan"
>https://github.com/KevinParnell/OneeChan</a
>.
</p>
<h2 id="please-note">Please note</h2>
<p>
<strong>Uninstalling</strong>: 4chan X disables the native extension, so
if you uninstall 4chan X, you'll need to re-enable it. To do this, click
the <code>[Settings]</code> link in the top right corner, uncheck
&quot;<code>Disable the native extension</code>&quot; in the panel that
appears, and click the &quot;<code>Save Settings</code>&quot; button. If
you don't see a &quot;<code>Save Settings</code>&quot; button, it may be
being hidden by your ad blocker.
</p>
<p>
<strong>Private browsing</strong>: By default, 4chan X remembers your last
read post in a thread and which posts were made by you, even if you are in
private browsing / incognito mode. If you want to turn this off, uncheck
the <code>Remember Last Read Post</code> and
<code>Remember Your Posts</code> options in the settings panel. You can
clear all 4chan browsing history saved by 4chan X by resetting your
settings.
</p>
<p>
Use of the &quot;Link Title&quot; feature to fetch titles of Youtube links
is subject to Youtube's
<a href="https://www.youtube.com/t/terms">Terms of Service</a> and
<a href="http://www.google.com/policies/privacy">Privacy Policy</a>. For
more details on what information is sent to Youtube and other sites, and
how to turn it off if you don't want the feature, see 4chan X's
<a href="https://github.com/ccd0/4chan-x/wiki/Privacy"
>privacy documentation</a
>.
</p>
<h2 id="install">Install</h2>
<input hidden type="checkbox" id="firefox-hide" />
<div>
<h3 id="firefox"><label for="firefox-hide">Firefox</label></h3>
<p>
Install
<a href="https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/"
>Violentmonkey</a
>,
<a href="https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/"
>Tampermonkey</a
>, or
<a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/"
>Greasemonkey</a
>
(issues since v4:
<a href="https://github.com/greasemonkey/greasemonkey/issues/2526"
>#2526</a
>,
<a href="https://github.com/greasemonkey/greasemonkey/issues/2574"
>#2576</a
>), then
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.user.js"
>click here to install 4chan X</a
></strong
>.
</p>
<p>
Ports of Greasemonkey are available for
<a href="https://sourceforge.net/projects/gmport/">SeaMonkey</a> and
<a
href="https://github.com/janekptacijarabaci/greasemonkey/releases/latest"
>Pale Moon</a
>.
</p>
</div>
<input hidden type="checkbox" id="chromium-hide" />
<div>
<h3 id="chromium"><label for="chromium-hide">Chromium</label></h3>
<p>
<strong>Userscript</strong>: Install
<a
href="https://chrome.google.com/webstore/detail/violent-monkey/jinjaccalgkegednnccohejagnlnfdag"
>Violentmonkey</a
>
or <a href="https://tampermonkey.net/">Tampermonkey</a>, then
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.user.js"
>click here to install 4chan X</a
></strong
>.
</p>
<p>
<strong>Chrome extension</strong>: 4chan X is also available as a
standalone Chrome extension. The Chrome extension has the additional
feature of being able to sync your settings and data with other devices
via Chrome Sync. But there is an issue when the script updates: Whenever
the Chrome extension is updated, until you hard refresh (F5) the tab,
4chan X is unable to save any data (such as posts marked as yours and
settings changes). The userscript version above does not have this
problem when 4chan X updates, only when Violentmonkey / Tampermonkey is
updated. To install as a Chrome extension:
</p>
<ul>
<li>
<strong>Chromium</strong>, <strong>Vivaldi</strong>:
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.crx"
>Download 4chan X</a
></strong
>, then open <code>chrome://extensions</code> and drag the downloaded
file onto the page. Alternatively, you can install 4chan X from the
<strong
><a
href="https://chrome.google.com/webstore/detail/ohnjgmpcibpbafdlkimncjhflgedgpam"
>Chrome store</a
></strong
>.
</li>
<li>
<strong>Opera</strong>:
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.crx"
>Click to install 4chan X</a
></strong
>, then follow the prompts to activate it in your extension manager.
</li>
<li>
<strong>Chrome</strong>: Install 4chan X from the
<strong
><a
href="https://chrome.google.com/webstore/detail/ohnjgmpcibpbafdlkimncjhflgedgpam"
>Chrome store</a
></strong
>.
</li>
</ul>
<p>
Note: This version of 4chan X does not work with Opera 12. If you need
Opera 12 support, try
<a href="https://github.com/loadletter/4chan-x">loadletter's fork</a>
instead.
</p>
</div>
<input hidden type="checkbox" id="safari-hide" />
<div>
<h3 id="safari"><label for="safari-hide">Safari</label></h3>
<p>
Install the
<a href="https://itunes.apple.com/us/app/userscripts/id1463298887"
>Userscripts</a
>
extension. Enable it by pressing <code>⌘,</code>, navigating to the
extensions pane and checking <code>Userscripts</code> checkbox. Now open
the Userscripts editor by clicking on the <code>&lt;/&gt;</code> button
in the taskbar. Then click on the <code>+</code> button and select the
<code>New Javascript</code> option. Replace the default text with the
contents of the 4chan X
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.user.js"
>script</a
></strong
>. Finally save it by pressing <code>⌘s</code>.
</p>
</div>
<input hidden type="checkbox" id="webkitgtk-qtwebkit-qtwebengine-hide" />
<div>
<h3 id="webkitgtk-qtwebkit-qtwebengine">
<label for="webkitgtk-qtwebkit-qtwebengine-hide"
>WebKitGTK+ / QtWebKit / QtWebEngine</label
>
</h3>
<p>
Several minimal browsers have support for userscripts and can run 4chan
X. Due to the lack of the cross-site GM_* API, and lack of support for
userscripts in iframes, not all features will work. You may experience
crashes when repeatedly solving the default image-based captchas. You
can avoid this problem by enabling <code>Use Recaptcha v1</code> in your
settings.
</p>
<ul>
<li>
<p>
<strong>dwb</strong>: Install the userscripts extension, then save
the
<a href="https://www.4chan-x.net/builds/4chan-X.user.js">script</a>
to the <code>$XDG_CONFIG_HOME/dwb/greasemonkey</code> or
<code>$HOME/.config/dwb/greasemonkey</code> directory (creating it
if necessary):
</p>
<pre><code>dwbem -N -i userscripts
wget -P ${XDG_CONFIG_HOME:-$HOME/.config}/dwb/greasemonkey https://www.4chan-x.net/builds/4chan-X.user.js
</code></pre>
</li>
<li>
<p>
<strong>Midori</strong>: Enable <code>User addons</code> in your
preferences, under the Extensions tab. In the Privacy tab, check
<code>Enable HTML5 local storage support</code>. Optionally, if you
want 4chan X to be able to open new tabs when you start or reply to
a thread, you will need to check
<code>Allow scripts to open popups</code> under the Behavior tab.
Then click the link to the
<a href="https://www.4chan-x.net/builds/4chan-X.user.js">script</a>
to install it.
</p>
</li>
<li>
<p>
<strong>Luakit</strong>: Navigate to the
<a href="https://www.4chan-x.net/builds/4chan-X.user.js">script</a>,
then type the command <code>:usi</code> to install it.
</p>
</li>
<li>
<p>
<strong>uzbl</strong>: Install the script from
<a
href="https://github.com/singpolyma/singpolyma/blob/master/uzbl/data/scripts/userscript.sh"
>https://github.com/singpolyma/singpolyma/blob/master/uzbl/data/scripts/userscript.sh</a
>, enable it in your config file, and then save
<a href="https://www.4chan-x.net/builds/4chan-X.user.js">4chan X</a>
to <code>$XDG_DATA_HOME/uzbl/userscripts</code> (or
<code>$HOME/.local/share/uzbl/userscripts</code>). The commands
below assume you have run uzbl at least once to create its config
file.
</p>
<pre><code>wget -P &quot;${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/scripts&quot; https://raw.githubusercontent.com/singpolyma/singpolyma/master/uzbl/data/scripts/userscript.sh
chmod +x &quot;${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/scripts/userscript.sh&quot;
echo '@on_event LOAD_COMMIT spawn @scripts_dir/userscript.sh document-start' &gt;&gt; &quot;${XDG_CONFIG_HOME:-$HOME/.config}/uzbl/config&quot;
echo '@on_event LOAD_FINISH spawn @scripts_dir/userscript.sh document-end' &gt;&gt; &quot;${XDG_CONFIG_HOME:-$HOME/.config}/uzbl/config&quot;
wget -P &quot;${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/userscripts&quot; https://www.4chan-x.net/builds/4chan-X.user.js
</code></pre>
</li>
<li>
<p>
<strong>qutebrowser</strong>: Save the
<a href="https://www.4chan-x.net/builds/4chan-X.user.js">script</a>
to the <code>$XDG_DATA_HOME/qutebrowser/greasemonkey</code> or
<code>$HOME/.local/share/qutebrowser/greasemonkey</code> directory:
</p>
<pre><code>wget -P ${XDG_DATA_HOME:-$HOME/.local/share}/qutebrowser/greasemonkey https://www.4chan-x.net/builds/4chan-X.user.js
</code></pre>
</li>
</ul>
</div>
<input hidden type="checkbox" id="ms-edge-hide" />
<div>
<h3 id="ms-edge"><label for="ms-edge-hide">MS Edge</label></h3>
<p>
Install
<a
href="https://www.microsoft.com/en-us/store/p/tampermonkey/9nblggh5162s"
>Tampermonkey</a
>, then
<strong
><a href="https://www.4chan-x.net/builds/4chan-X.user.js"
>click here to install 4chan X</a
></strong
>.
</p>
</div>
<input hidden type="checkbox" id="other-browsers-hide" />
<div>
<h3 id="other-browsers">
<label for="other-browsers-hide">Other browsers</label>
</h3>
<p>
4chan X can be used in some browsers that do not support userscripts
using <a href="https://github.com/ccd0/4chan-x-proxy">a local proxy</a>.
Not all features will work.
</p>
</div>
<h2 id="beta-version">Beta version</h2>
<p>
New features and non-urgent bugfixes are released on the beta channel for
further testing before they are moved the stable version. Please
<a
href="https://github.com/ccd0/4chan-x/issues?q=is%3Aopen+sort%3Aupdated-desc"
>report</a
>
any issues you find, and be sure to mention which version you're using.
You should back up your settings regularly to prevent them from being lost
due to bugs.
</p>
<p>
To install the <strong>beta</strong> version and get updates whenever
there's a new <strong>beta</strong> version:
</p>
<ul>
<li>
<a href="https://www.4chan-x.net/builds/4chan-X-beta.user.js"
>Install userscript</a
>
(use with Greasemonkey / Violentmonkey / Tampermonkey / JS Blocker /
etc.)
</li>
<li>
<a href="https://www.4chan-x.net/builds/4chan-X-beta.crx"
>Download Chrome extension</a
>
(download and drag to <code>chrome://extensions</code>)
</li>
</ul>
<p>
To install the current <strong>beta</strong> version but get updates from
the <strong>stable</strong> channel (for example, if just you want a
particular recent feature):
</p>
<ul>
<li>
<a
href="https://github.com/ccd0/4chan-x/raw/beta/builds/4chan-X.user.js"
>Install userscript</a
>
</li>
<li>
<a href="https://github.com/ccd0/4chan-x/raw/beta/builds/4chan-X.crx"
>Download Chrome extension</a
>
</li>
</ul>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>
If you encounter a bug, try the steps
<a
href="https://github.com/ccd0/4chan-x/blob/master/CONTRIBUTING.md#reporting-bugs"
>here</a
>, then report it to the
<a
href="https://github.com/ccd0/4chan-x/issues?q=is%3Aopen+sort%3Aupdated-desc"
>issue tracker</a
>. If the bug seems to be caused by a script update, you can install a old
version from the
<a href="https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md"
>changelog</a
>.
</p>
<script>
function imagePreview() {
this.removeEventListener('mouseover', imagePreview, false);
var img = new Image();
img.src = this.href;
img.alt = 'preview';
var span = document.createElement('span');
span.className = 'hover';
span.appendChild(img);
this.parentNode.insertBefore(span, this.nextSibling);
}
function storeInstall(e) {
if (
!e.shiftKey &&
!e.altKey &&
!e.ctrlKey &&
!e.metaKey &&
e.button === 0
) {
var url = this.href;
chrome.webstore.install(
url,
function () {},
function () {
location.href = url;
}
);
e.preventDefault();
}
}
for (var i = 0; i < document.links.length; i++) {
var link = document.links[i];
if (/\.png$/.test(link.pathname) && !link.querySelector('.hover')) {
link.addEventListener('mouseover', imagePreview, false);
} else if (window.chrome && link.host === 'chrome.google.com') {
link.addEventListener('click', storeInstall, false);
}
}
var engine = (function () {
if (/Edge\//.test(navigator.userAgent)) return 'edge';
if (/Chrome\//.test(navigator.userAgent)) return 'blink';
if (/WebKit\//.test(navigator.userAgent)) return 'webkit';
if (/Gecko\/|Goanna/.test(navigator.userAgent)) return 'gecko';
if (/Presto\//.test(navigator.userAgent)) return 'presto';
})();
var engines = {
firefox: 'gecko',
chromium: 'blink presto',
safari: 'webkit',
'webkitgtk-qtwebkit-qtwebengine': 'webkit',
'ms-edge': 'edge',
'other-browsers': '',
};
if (location.hash.slice(1) in engines) {
for (browser in engines) {
document.getElementById(browser + '-hide').checked =
browser !== location.hash.slice(1);
}
} else if (engine) {
for (browser in engines) {
document.getElementById(browser + '-hide').checked =
engines[browser].indexOf(engine) < 0;
}
}
</script>
</body>
</html>