mirror of
https://github.com/Tygs/0bin.git
synced 2023-08-10 21:13:00 +03:00
Merge branch 'v2' of github.com:Tygs/0bin into v2
This commit is contained in:
commit
b83f284b98
18
README.rst
18
README.rst
@ -12,15 +12,18 @@ to `moderate the pastebin content`_ as they have no way to decrypt it.
|
|||||||
|
|
||||||
It's an Python implementation of the `zerobin project`_, created by sebsauvage, under the `WTFPL licence`_.
|
It's an Python implementation of the `zerobin project`_, created by sebsauvage, under the `WTFPL licence`_.
|
||||||
|
|
||||||
For now tested with IE9, and the last opera, safari, chrome and FF.
|
To run zerobin, download zerobin.pyz from the latest release_ then:
|
||||||
|
|
||||||
There is a `good doc <http://readthedocs.org/docs/0bin/en/latest/>`_,
|
::
|
||||||
but in short::
|
|
||||||
|
|
||||||
pip install zerobin
|
python zerobin.pyz
|
||||||
zerobin
|
|
||||||
|
0bin requires Python 3.7 or higher.
|
||||||
|
|
||||||
|
You may need to type :code:`py -3.7 zerobin.pyz` on Windows, or :code:`python3.7 zerobin.pyz` on Mac/Linux, depending on your configuration.
|
||||||
|
|
||||||
|
If you are familiar with the Python ecosystem, you can also :code:`python -m pip install zerobin --user` and run :code:`python -m zerobin` for the same effect.
|
||||||
|
|
||||||
0bin runs on Python 3.7+.
|
|
||||||
|
|
||||||
How it works
|
How it works
|
||||||
=============
|
=============
|
||||||
@ -69,7 +72,8 @@ Known issues
|
|||||||
.. _zerobin project: https://github.com/sebsauvage/ZeroBin/
|
.. _zerobin project: https://github.com/sebsauvage/ZeroBin/
|
||||||
.. _node.js: http://nodejs.org/
|
.. _node.js: http://nodejs.org/
|
||||||
.. _is not worth it: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
|
.. _is not worth it: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
|
||||||
.. _WTF licence: http://en.wikipedia.org/wiki/WTFPL
|
.. _WTFPL licence: http://en.wikipedia.org/wiki/WTFPL
|
||||||
|
.. _release: https://github.com/Tygs/0bin/releases
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
=============
|
=============
|
||||||
|
6
pyproject.toml
Normal file
6
pyproject.toml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = [
|
||||||
|
"setuptools >= 40.9.0",
|
||||||
|
"wheel",
|
||||||
|
]
|
||||||
|
build-backend = "setuptools.build_meta"
|
@ -25,3 +25,6 @@ install_requires =
|
|||||||
* = static/img/*, static/css/*, static/js/*, view/*
|
* = static/img/*, static/css/*, static/js/*, view/*
|
||||||
hello = *.msg
|
hello = *.msg
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
console_scripts =
|
||||||
|
zerobin = zerobin.cli:main
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
__version__ = "1.0.0"
|
__version__ = "1.0.3"
|
||||||
|
|
||||||
ROOT_DIR = Path(__file__).absolute().parent
|
ROOT_DIR = Path(__file__).absolute().parent
|
||||||
|
@ -158,13 +158,64 @@ def set_admin_password(password):
|
|||||||
settings.ADMIN_PASSWORD_FILE.write_bytes(hash_password(password))
|
settings.ADMIN_PASSWORD_FILE.write_bytes(hash_password(password))
|
||||||
|
|
||||||
|
|
||||||
|
def clean_expired_pastes(
|
||||||
|
*, dry_run=False, verbose=False, config_dir="", data_dir="",
|
||||||
|
):
|
||||||
|
""" Clean expired file pastes and empty paste directories
|
||||||
|
|
||||||
|
This features delete files from the data dir, make sure it's safe.
|
||||||
|
|
||||||
|
Use "dry_run" and "verbose" options to check first
|
||||||
|
"""
|
||||||
|
|
||||||
|
ensure_app_context(config_dir=config_dir, data_dir=data_dir)
|
||||||
|
|
||||||
|
print("Deleting expired pastes...")
|
||||||
|
i = 0
|
||||||
|
for p in Paste.iter_all():
|
||||||
|
if p.has_expired:
|
||||||
|
if not dry_run:
|
||||||
|
p.delete()
|
||||||
|
if verbose:
|
||||||
|
print(p.path, "has expired")
|
||||||
|
i += 1
|
||||||
|
if dry_run:
|
||||||
|
print(f"{i} pastes would have been deleted")
|
||||||
|
else:
|
||||||
|
print(f"{i} pastes deleted")
|
||||||
|
|
||||||
|
print("Deleting empty paste directories...")
|
||||||
|
i = 0
|
||||||
|
for p in settings.DATA_DIR.rglob("*"):
|
||||||
|
try:
|
||||||
|
if p.is_dir() and not next(p.iterdir(), None):
|
||||||
|
if not dry_run:
|
||||||
|
p.rmdir()
|
||||||
|
if verbose:
|
||||||
|
print(p, "is empty")
|
||||||
|
i += 1
|
||||||
|
except OSError as e:
|
||||||
|
print(f'Error while processing "{p}: {e}')
|
||||||
|
if dry_run:
|
||||||
|
print(f"{i} directories would have been deleted")
|
||||||
|
else:
|
||||||
|
print(f"{i} directories deleted")
|
||||||
|
print("Done")
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
subcommands = [runserver, delete_paste, infos, set_admin_password]
|
subcommands = [
|
||||||
|
runserver,
|
||||||
|
delete_paste,
|
||||||
|
infos,
|
||||||
|
set_admin_password,
|
||||||
|
clean_expired_pastes,
|
||||||
|
]
|
||||||
subcommand_names = [
|
subcommand_names = [
|
||||||
clize.util.name_py2cli(name)
|
clize.util.name_py2cli(name)
|
||||||
for name in clize.util.dict_from_names(subcommands).keys()
|
for name in clize.util.dict_from_names(subcommands).keys()
|
||||||
]
|
]
|
||||||
if len(sys.argv) < 2 or sys.argv[1] not in subcommand_names:
|
if len(sys.argv) < 2 or sys.argv[1] not in subcommand_names:
|
||||||
sys.argv.insert(1, subcommand_names[0])
|
sys.argv.insert(1, subcommand_names[0])
|
||||||
clize.run(runserver, delete_paste, infos, set_admin_password)
|
clize.run(runserver, delete_paste, infos, set_admin_password, clean_expired_pastes)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Get error messages and auto reload.
|
# Get error messages and auto reload.
|
||||||
# Don't set this to True in production
|
# Don't set this to True in production
|
||||||
DEBUG = True
|
DEBUG = False
|
||||||
|
|
||||||
# Port and host for the embedded python server
|
# Port and host for the embedded python server
|
||||||
HOST = "127.0.0.1"
|
HOST = "127.0.0.1"
|
||||||
@ -20,7 +20,7 @@ MENU = (
|
|||||||
|
|
||||||
# Size limit of the paste content in bytes. Be careful, allowing a size too big can
|
# Size limit of the paste content in bytes. Be careful, allowing a size too big can
|
||||||
# slow down the user's browser
|
# slow down the user's browser
|
||||||
MAX_SIZE = 1024 * 600
|
MAX_SIZE = 1024 * 1000
|
||||||
|
|
||||||
# Display a tiny counter for pastes created.
|
# Display a tiny counter for pastes created.
|
||||||
DISPLAY_COUNTER = True
|
DISPLAY_COUNTER = True
|
||||||
|
@ -1,85 +1,151 @@
|
|||||||
<div class="well" id="buy_bitcoin">
|
<div class="well" id="buy_bitcoin">
|
||||||
<h1>How To Buy Bitcoin?</h1>
|
<h1>How To Buy Bitcoin?</h1>
|
||||||
|
|
||||||
|
|
||||||
<p></p>
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
<h4>What is Bitcoin?</h4>
|
<h4>What is Bitcoin?</h4>
|
||||||
|
|
||||||
<p>Bitcoin was created by Satoshi Nakamoto, a pseudonymous person or team who outlined the technology in a 2008 white paper. It’s an appealingly simple concept: <strong>bitcoin is digital money</strong> that allows for secure peer-to-peer transactions on the internet.
|
|
||||||
|
<p>Bitcoin was created by Satoshi Nakamoto, a pseudonymous person or team who outlined the technology in a 2008 white
|
||||||
|
paper. It’s an appealingly simple concept: <strong>bitcoin is digital money</strong> that allows for secure
|
||||||
|
peer-to-peer transactions on the internet.
|
||||||
</p>
|
</p>
|
||||||
<p>Unlike services like Venmo and PayPal, which rely on the traditional financial system for permission to transfer money and on existing debit/credit accounts, bitcoin is decentralized: any two people, anywhere in the world, can send bitcoin to each other without the involvement of a bank, government, or other institution.
|
<p>Unlike services like Venmo and PayPal, which rely on the traditional financial system for permission to transfer
|
||||||
|
money and on existing debit/credit accounts, bitcoin is decentralized: any two people, anywhere in the world, can
|
||||||
|
send bitcoin to each other without the involvement of a bank, the government, or other institution.
|
||||||
<p>
|
<p>
|
||||||
Every transaction involving Bitcoin is tracked on the blockchain, which is similar to a bank’s ledger, or log of customers’ funds going in and out of the bank. In simple terms, it’s a record of every transaction ever made using bitcoin.
|
Every transaction involving Bitcoin is tracked on the blockchain, which is similar to a bank ledger, or log of
|
||||||
|
customers’ funds going in and out of the bank. In simple terms, it’s a record of every transaction ever made
|
||||||
|
using bitcoin.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
There will only ever be 21 million bitcoin. This is digital money that cannot be inflated or manipulated in any way.
|
There will only ever be 21 million bitcoin. This is digital money that cannot be inflated or manipulated in any
|
||||||
|
way.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
It isn’t necessary to buy an entire bitcoin: you can buy just a fraction of one if that’s all you want or need.
|
It isn’t necessary to buy an entire bitcoin: you can buy just a fraction of one if that’s all you want or need.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4>Why would I buy Bitcoin?</h4>
|
<h4>Why would I buy Bitcoin?</h4>
|
||||||
|
|
||||||
<p>Bitcoin is in the news today more than ever. Thanks to skyrocketing prices and rollercoaster dips, everyone and their dogs are interested in learning how to buy and sell Bitcoin. As the most popular form of cryptocurrency, Bitcoin is now widely accepted around the world and has a growing number of applications. If you want to take advantage of that though, you first need to know how to buy Bitcoin and what to do with it when you have.
|
|
||||||
|
<p>Bitcoin is in the news today more than ever. Thanks to skyrocketing prices and rollercoaster dips, everyone and
|
||||||
|
their dogs are interested in learning how to buy and sell Bitcoin. As the most popular form of cryptocurrency,
|
||||||
|
Bitcoin is now widely accepted around the world and has a growing number of applications. If you want to take
|
||||||
|
advantage of that though, you first need to know how to buy Bitcoin and what to do with it when you have.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h4>How to buy Bitcoin ?</h4>
|
<h4>How to buy Bitcoin ?</h4>
|
||||||
|
|
||||||
<p>The best place to make your first Bitcoin purchase is on an exchange. There are a whole lot of exchanges out there, with varying performance. Some are less trustworthy than others, and some can be quite limited, so it’s crucial to pick the right exchange in the first place. We recommend using <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a>, follow the simple guide bellow to buy your first Bitcoins.
|
|
||||||
|
<p>The best place to make your first Bitcoin purchase is on an exchange. There are a whole lot of exchanges out
|
||||||
|
there, with varying performance. Some are less trustworthy than others, and some can be quite limited, so it’s
|
||||||
|
crucial to pick the right exchange in the first place. We recommend using <a
|
||||||
|
href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a>, follow the simple
|
||||||
|
guide below to buy your first Bitcoins.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h6>1. Buy Bitcoin on Binance</h6>
|
<h6>1. Buy Bitcoin on Binance</h6>
|
||||||
|
|
||||||
<p>We recommend buying Bitcoins on <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> because in terms of volume, it is considered to be the world's leading platform.
|
|
||||||
In 2019, Binance reports an average trading volume of <strong>$2.8 billion per day</strong>. This platform, launched on July 14, 2017 in Hong Kong, has the advantage of operating with technical assistance 24 hours a day, 7 days a week. Its <strong>CEO Zhao Changpeng</strong>, who has become a billionaire, was featured on the cover of the prestigious Forbes magazine in February 2018.
|
<p>We recommend buying Bitcoins on <a href="https://www.binance.com/en/register?ref=CAWS9NNE"
|
||||||
|
title="Buy Bitcoin">Binance</a> because in terms of volume, it is considered to be the world's leading
|
||||||
|
platform.
|
||||||
|
In 2019, Binance reports an average trading volume of <strong>$2.8 billion per day</strong>. This platform,
|
||||||
|
launched on July 14, 2017, in Hong Kong, has the advantage of operating with technical assistance 24 hours a
|
||||||
|
day, 7 days a week. Its <strong>CEO Zhao Changpeng</strong>, who has become a billionaire, was featured on the
|
||||||
|
cover of the prestigious Forbes magazine in February 2018.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h6>2. How do I register with <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> to buy Bitcoin?</h6>
|
|
||||||
|
|
||||||
<p>The first step before buying Bitcoin on <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> is to register. The user must first select the language in which they want to access the site, then enter a valid email address and finally choose a password.
|
<h6>2. How do I register with <a href="https://www.binance.com/en/register?ref=CAWS9NNE"
|
||||||
|
title="Buy Bitcoin">Binance</a> to buy Bitcoin?</h6>
|
||||||
|
|
||||||
|
|
||||||
|
<p>The first step before buying Bitcoin on <a href="https://www.binance.com/en/register?ref=CAWS9NNE"
|
||||||
|
title="Buy Bitcoin">Binance</a> is to register. The user must first select the language in which they want
|
||||||
|
to access the site, then enter a valid email address and finally choose a password.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 class="text-center"><a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Click here to register an account with Binance now!<a></h3>
|
|
||||||
|
<h3 class="text-center"><a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Click here
|
||||||
|
to register an account with Binance now!<a></h3>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance1.png" alt="Register Binance">
|
<img src="/static/img/binance1.png" alt="Register Binance">
|
||||||
|
|
||||||
<p>For your security, the platform offers you to proceed to the 2FA, also called "Two Step Verification", which consists in logging in with your password and your phone using <a href="https://support.google.com/accounts/answer/1066447?co=GENIE.Platform%3DAndroid">Google Authenticator</a>. Both we and the platform recommend that you delay the purchase of your Bitcoins by opting for this extra layer of security. Binance Academy 2fa available <a href="https://academy.binance.com/tutorials/binance-2fa-guide">here</a>.
|
|
||||||
|
<p>For your security, the platform offers you to proceed to the 2FA, also called "Two Step Verification", which
|
||||||
|
consists in logging in with your password and your phone using <a
|
||||||
|
href="https://support.google.com/accounts/answer/1066447?co=GENIE.Platform%3DAndroid">Google
|
||||||
|
Authenticator</a>. Both we and the platform recommend that you delay the purchase of your Bitcoins by opting
|
||||||
|
for this extra layer of security. Binance Academy 2FA available <a
|
||||||
|
href="https://academy.binance.com/tutorials/binance-2fa-guide">here</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance2.png" alt="2FA Binance">
|
<img src="/static/img/binance2.png" alt="2FA Binance">
|
||||||
|
|
||||||
<p>The second step is to verify your identity. Indeed, <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> is subject to KYC regulations as part of the fight against money laundering and terrorist financing. The platform will ask you whether or not you reside in China, before moving on to other personal information (surname, first name, gender, country of residence).
|
|
||||||
|
<p>The second step is to verify your identity. Indeed, <a href="https://www.binance.com/en/register?ref=CAWS9NNE"
|
||||||
|
title="Buy Bitcoin">Binance</a> is subject to KYC regulations as part of the fight against money laundering
|
||||||
|
and terrorist financing. The platform will ask you whether or not you reside in China, before moving on to
|
||||||
|
other personal information (surname, first name, gender, country of residence).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance3.png" alt="Verify identity Binance">
|
<img src="/static/img/binance3.png" alt="Verify identity Binance">
|
||||||
|
|
||||||
<p>Authentication is done by sending the number and a photocopy of both sides of your ID and a photo of you. On this photo, you must show the same ID and a newspaper (or other document) with the current date.
|
|
||||||
|
<p>Authentication is done by sending the number and a photocopy of both sides of your ID and a photo of you. On
|
||||||
|
this photo, you must show the same ID and a newspaper (or other document) with the current date.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance4.png" alt="Verify identity Binance">
|
<img src="/static/img/binance4.png" alt="Verify identity Binance">
|
||||||
|
|
||||||
<p>The easiest way to get Bitcoin at Binance is to buy it by credit card. To do so, head over to the “Buy Crypto” section on the <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> toolbar, and choose the “Buy with Credit Card” option.
|
|
||||||
|
<p>The easiest way to get Bitcoin at Binance is to buy it by credit card. To do so, head over to the “Buy Crypto”
|
||||||
|
section on the <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a>
|
||||||
|
toolbar, and choose the “Buy with Credit Card” option.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance6.png" alt="Verify identity Binance">
|
<img src="/static/img/binance6.png" alt="Verify identity Binance">
|
||||||
|
|
||||||
<p>Select your currency and BTC coin you wish to purchase and enter the amount before clicking "Buy BTC". All you will need to do is enter your bank details and the purchase will be completed.</p>
|
|
||||||
|
<p>Select your currency and BTC coin you wish to purchase and enter the amount before clicking "Buy BTC". All you
|
||||||
|
will need to do is enter your bank details and the purchase will be completed.</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/static/img/binance5.png" alt="Verify identity Binance">
|
<img src="/static/img/binance5.png" alt="Verify identity Binance">
|
||||||
|
|
||||||
<p>Although it is mainly focused on the exchange of cryptomoney, <a href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> is now establishing itself as a very competitive platform for the purchase of cryptomoney by credit card. It is also reassuring because of its reputation, its activity and its ecosystem.</p>
|
|
||||||
|
<p>Although it is mainly focused on the exchange of cryptomoney, <a
|
||||||
|
href="https://www.binance.com/en/register?ref=CAWS9NNE" title="Buy Bitcoin">Binance</a> is now establishing
|
||||||
|
itself as a very competitive platform for the purchase of cryptomoney by credit card. It is also reassuring
|
||||||
|
because of its reputation, its activity and its ecosystem.</p>
|
||||||
|
|
||||||
|
|
||||||
<h4>You're now a part of the future! Congrats!</h4>
|
<h4>You're now a part of the future! Congrats!</h4>
|
||||||
|
|
||||||
|
|
||||||
<p></p>
|
<p></p>
|
||||||
<p>Read more about Bitcoins
|
<p>Read more about Bitcoins
|
||||||
<br><a href="https://bitcoin.org/en/">Bitcoin.org</a>
|
<br><a href="https://bitcoin.org/en/">Bitcoin.org</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% rebase("base", settings=settings, pastes_count=pastes_count)
|
% rebase("base", settings=settings, pastes_count=pastes_count)
|
||||||
|
Loading…
Reference in New Issue
Block a user