mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-03-20 01:37:45 +01:00
Added pyquotes
This commit is contained in:
parent
ffc2b2f6fc
commit
e7e340e1b3
122
.local/bin/pyquotes
Executable file
122
.local/bin/pyquotes
Executable file
@ -0,0 +1,122 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
"""
|
||||||
|
Copyright (C) 2021 Jenny Rakete
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os.path
|
||||||
|
import random
|
||||||
|
from os import environ, scandir
|
||||||
|
|
||||||
|
VERSION = "1.1"
|
||||||
|
BANNER = f"""\
|
||||||
|
pyquotes {VERSION} - Copyright (C) 2021 Jenny Rakete
|
||||||
|
This is free software; see the beginning of this file for copying conditions.
|
||||||
|
There is NO warranty;
|
||||||
|
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."""
|
||||||
|
|
||||||
|
QUOTEPATH = (
|
||||||
|
environ["QUOTEPATH"] if "QUOTEPATH" in environ else "/usr/share/pyquotes"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_arguments():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
parser.add_argument("quotedirs", action="extend", nargs="*",
|
||||||
|
help="list of quotedirs to select quotes from")
|
||||||
|
parser.add_argument("-l", "--list", action="store_true",
|
||||||
|
help="list all known quotedirs")
|
||||||
|
parser.add_argument("-V", "--version", action="store_true",
|
||||||
|
help="print version information")
|
||||||
|
|
||||||
|
options = parser.parse_args()
|
||||||
|
|
||||||
|
return options
|
||||||
|
|
||||||
|
|
||||||
|
def parse_arguments(options: argparse.Namespace):
|
||||||
|
if options.version:
|
||||||
|
print(BANNER)
|
||||||
|
exit()
|
||||||
|
|
||||||
|
if len(options.quotedirs) == 0:
|
||||||
|
options.quotedirs = [quotedir.name for quotedir in get_quotedirs()]
|
||||||
|
|
||||||
|
if options.list:
|
||||||
|
list_quotedirs(options.quotedirs)
|
||||||
|
exit()
|
||||||
|
|
||||||
|
|
||||||
|
def get_quotedirs():
|
||||||
|
try:
|
||||||
|
return [quote_dir for quote_dir
|
||||||
|
in scandir(QUOTEPATH)
|
||||||
|
if quote_dir.is_dir()]
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"quotepath `{QUOTEPATH}` does not exist. "
|
||||||
|
"Is $QUOTEPATH set correctly?")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def list_quotedirs(quote_dirs: list):
|
||||||
|
output = {}
|
||||||
|
total_quotes = 0
|
||||||
|
for quote_dir in quote_dirs:
|
||||||
|
output[quote_dir] = len(
|
||||||
|
[_ for _ in scandir(QUOTEPATH + os.path.sep + quote_dir)])
|
||||||
|
total_quotes += output[quote_dir]
|
||||||
|
print("\n".join(
|
||||||
|
["{percentage:.2f}%\t {name} ({amount})".format(
|
||||||
|
percentage=(output[name] / total_quotes * 100),
|
||||||
|
name=name,
|
||||||
|
amount=output[name],
|
||||||
|
) for name in output]
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
def get_quote(quotedirs: list):
|
||||||
|
quote_files = []
|
||||||
|
|
||||||
|
for quotedir in quotedirs:
|
||||||
|
try:
|
||||||
|
new_quote_files = [file for file
|
||||||
|
in scandir(QUOTEPATH + os.path.sep + quotedir)
|
||||||
|
if file.is_file()]
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"quotedir `{quotedir}` not found in `{QUOTEPATH}`. ")
|
||||||
|
exit(1)
|
||||||
|
quote_files += [quote_file for quote_file
|
||||||
|
in new_quote_files
|
||||||
|
if quote_file.name.endswith(".quote")]
|
||||||
|
|
||||||
|
quote_file = random.choice(quote_files)
|
||||||
|
with open(quote_file.path) as quote_file:
|
||||||
|
return "".join(quote_file.readlines())
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
options = get_arguments()
|
||||||
|
parse_arguments(options)
|
||||||
|
|
||||||
|
quote = get_quote(options.quotedirs)
|
||||||
|
|
||||||
|
print(quote, end="\n" * (quote[-1] != "\n"))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
3
.local/share/pyquotes/free-software/lee_drm.quote
Normal file
3
.local/share/pyquotes/free-software/lee_drm.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
If consumers even know there's a DRM, what it is,
|
||||||
|
and how it works, we've already failed.
|
||||||
|
-- Peter Lee
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
It's certainly easier to implement bad security
|
||||||
|
and make it illegal for anyone to notice
|
||||||
|
than it is to implement good security.
|
||||||
|
-- Bruce Schneier
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
...trying to make digital files uncopyable
|
||||||
|
is like trying to make water not wet.
|
||||||
|
-- Bruce Schneier
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
Writing non-free software is not an ethically legitimate activity, so if people
|
||||||
|
who do this run into trouble, that's good! All businesses based on non-free
|
||||||
|
software ought to fail, and the sooner the better.
|
||||||
|
-- Dr. Richard M. Stallman
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
The idea of free software is that users of computing deserve freedom.
|
||||||
|
They deserve in particular to have control over their computing. And
|
||||||
|
proprietary software does not allow users to have control of their computing.
|
||||||
|
-- Dr. Richard M. Stallman
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
Free software is software that respects your freedom and
|
||||||
|
the social solidarity of your community.
|
||||||
|
So it's free as in freedom.
|
||||||
|
-- Dr. Richard M. Stallman
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
Many users of the GNU/Linux system will
|
||||||
|
not have heard the ideas of free software.
|
||||||
|
They will not be aware that we have ideas,
|
||||||
|
that a system exists because of ethical ideals,
|
||||||
|
which were omitted from ideas associated with the term 'open source'.
|
||||||
|
-- Dr. Richard M. Stallman
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
Shareware tends to combine
|
||||||
|
the worst of commercial software with
|
||||||
|
the worst of free software.
|
||||||
|
-- Linus Torvalds
|
||||||
3
.local/share/pyquotes/freedom/goldman_authority.quote
Normal file
3
.local/share/pyquotes/freedom/goldman_authority.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
The strongest bulwark of authority is uniformity;
|
||||||
|
the least divergence from it is the greatest crime.
|
||||||
|
-- Emma Goldman
|
||||||
4
.local/share/pyquotes/freedom/goldman_bread.quote
Normal file
4
.local/share/pyquotes/freedom/goldman_bread.quote
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Ask for work.
|
||||||
|
If they don't give you work, ask for bread.
|
||||||
|
If they do not give you work or bread, then take bread.
|
||||||
|
-- Emma Goldman
|
||||||
5
.local/share/pyquotes/freedom/goldman_dominions.quote
Normal file
5
.local/share/pyquotes/freedom/goldman_dominions.quote
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Religion, the dominion of the human mind;
|
||||||
|
Property, the dominion of human needs; and
|
||||||
|
Government, the dominion of human conduct,
|
||||||
|
represent the stronghold of man's enslavement and all the horrors it entails.
|
||||||
|
-- Emma Goldman
|
||||||
4
.local/share/pyquotes/freedom/goldman_give.quote
Normal file
4
.local/share/pyquotes/freedom/goldman_give.quote
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Give us what belongs to us in peace,
|
||||||
|
and if you don't give it to us in peace,
|
||||||
|
we will take it by force.
|
||||||
|
-- Emma Goldman
|
||||||
5
.local/share/pyquotes/freedom/goldman_law.quote
Normal file
5
.local/share/pyquotes/freedom/goldman_law.quote
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
No great idea in its beginning can ever be within the law.
|
||||||
|
How can it be within the law?
|
||||||
|
The law is stationary. The law is fixed. The law is a chariot wheel
|
||||||
|
which binds us all regardless of conditions or place or time.
|
||||||
|
-- Emma Goldman
|
||||||
5
.local/share/pyquotes/freedom/goldman_liberation.quote
Normal file
5
.local/share/pyquotes/freedom/goldman_liberation.quote
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Anarchism stands for the liberation of the human mind from the dominion
|
||||||
|
of religion and liberation of the human body from the coercion of property;
|
||||||
|
liberation from the shackles and restraint of government.
|
||||||
|
It stands for a social order based on the free grouping of individuals...
|
||||||
|
-- Emma Goldman
|
||||||
3
.local/share/pyquotes/freedom/goldman_liberty.quote
Normal file
3
.local/share/pyquotes/freedom/goldman_liberty.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
People have only as much liberty as they have
|
||||||
|
the intelligence to want and the courage to take.
|
||||||
|
-- Emma Goldman
|
||||||
6
.local/share/pyquotes/freedom/goldman_revolution.quote
Normal file
6
.local/share/pyquotes/freedom/goldman_revolution.quote
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
No real social change has ever been brought about without a revolution -
|
||||||
|
Revolution is but thought carried into action.
|
||||||
|
Every effort for progress, for enlightenment, for science,
|
||||||
|
for religious, political, and economic liberty,
|
||||||
|
emanates from the minority, and not from the mass.
|
||||||
|
-- Emma Goldman
|
||||||
2
.local/share/pyquotes/freedom/goldman_voting.quote
Normal file
2
.local/share/pyquotes/freedom/goldman_voting.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
If voting changed anything, they'd make it illegal.
|
||||||
|
-- Emma Goldman
|
||||||
3
.local/share/pyquotes/freedom/luxemburg_denken.quote
Normal file
3
.local/share/pyquotes/freedom/luxemburg_denken.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Freiheit ist immer die Freiheit des Andersdenkenden.
|
||||||
|
Aber was ist, wenn der andere denkt, dass alle das gleiche denken sollen?
|
||||||
|
-- Rosa Luxemburg
|
||||||
2
.local/share/pyquotes/freedom/nietzsche_slave.quote
Normal file
2
.local/share/pyquotes/freedom/nietzsche_slave.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Who doesn't have two thirds of his day for himself, is a slave.
|
||||||
|
-- Friedrich Nietzsche
|
||||||
3
.local/share/pyquotes/freedom/orwell_advertisers.quote
Normal file
3
.local/share/pyquotes/freedom/orwell_advertisers.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
All the papers that matter live off their advertisements,
|
||||||
|
and the advertisers exercise an indirect censorship over news.
|
||||||
|
-- George Orwell
|
||||||
3
.local/share/pyquotes/freedom/orwell_control.quote
Normal file
3
.local/share/pyquotes/freedom/orwell_control.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Who controls the past controls the future.
|
||||||
|
Who controls the present controls the past.
|
||||||
|
-- George Orwell
|
||||||
2
.local/share/pyquotes/freedom/orwell_freedom.quote
Normal file
2
.local/share/pyquotes/freedom/orwell_freedom.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Freedom is the right to tell people what they do not want to hear.
|
||||||
|
-- George Orwell
|
||||||
2
.local/share/pyquotes/freedom/orwell_intellectuals.quote
Normal file
2
.local/share/pyquotes/freedom/orwell_intellectuals.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Some ideas are so stupid that only intellectuals believe them.
|
||||||
|
-- George Orwell
|
||||||
2
.local/share/pyquotes/freedom/orwell_power.quote
Normal file
2
.local/share/pyquotes/freedom/orwell_power.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
We know that no one ever seizes power with the intention of relinquishing it.
|
||||||
|
-- George Orwell
|
||||||
2
.local/share/pyquotes/freedom/orwell_revolution.quote
Normal file
2
.local/share/pyquotes/freedom/orwell_revolution.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
The revolution will be complete when the language is perfect.
|
||||||
|
-- George Orwell
|
||||||
3
.local/share/pyquotes/freedom/rakete_symptomatic.quote
Normal file
3
.local/share/pyquotes/freedom/rakete_symptomatic.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
All of law is but a symptomatic remedy for the
|
||||||
|
issues in society -- and a snake oil at that.
|
||||||
|
-- rakete
|
||||||
3
.local/share/pyquotes/justice/einstein_justice.quote
Normal file
3
.local/share/pyquotes/justice/einstein_justice.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
In matters of truth and justice, there is no difference between large and
|
||||||
|
small problems, for issues concerning the treatment of people are all the same.
|
||||||
|
-- Albert Einstein
|
||||||
3
.local/share/pyquotes/justice/roosevelt_justice.quote
Normal file
3
.local/share/pyquotes/justice/roosevelt_justice.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Justice consists not in being neutral between right and wrong, but in
|
||||||
|
finding out the right and upholding it, wherever found, against the wrong.
|
||||||
|
-- Theodore Roosevelt
|
||||||
7
.local/share/pyquotes/justice/thoreau_laws.quote
Normal file
7
.local/share/pyquotes/justice/thoreau_laws.quote
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Unjust laws exist;
|
||||||
|
|
||||||
|
shall we be content to obey them,
|
||||||
|
or shall we endeavor to amend them, and obey them until we have succeeded,
|
||||||
|
|
||||||
|
or shall we transgress them at once?
|
||||||
|
-- Henry David Thoreau
|
||||||
3
.local/share/pyquotes/misc/rakete_verwertung.quote
Normal file
3
.local/share/pyquotes/misc/rakete_verwertung.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Die Verwertungsindustrie ist einer der groessten Feinde
|
||||||
|
origineller Kreativitaet.
|
||||||
|
-- rakete
|
||||||
2
.local/share/pyquotes/misc/tyson_plans.quote
Normal file
2
.local/share/pyquotes/misc/tyson_plans.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Everybody has plans until they get punched for the first time.
|
||||||
|
-- Mike Tyson
|
||||||
3
.local/share/pyquotes/truth/buddha_hidden.quote
Normal file
3
.local/share/pyquotes/truth/buddha_hidden.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Three things cannot be long hidden:
|
||||||
|
the sun, the moon, and the truth.
|
||||||
|
-- Gautama Buddha
|
||||||
3
.local/share/pyquotes/truth/einstein_truth.quote
Normal file
3
.local/share/pyquotes/truth/einstein_truth.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Whoever is careless with the truth in small matters
|
||||||
|
cannot be trusted with important matters.
|
||||||
|
-- Albert Einstein
|
||||||
4
.local/share/pyquotes/truth/lincoln_people.quote
Normal file
4
.local/share/pyquotes/truth/lincoln_people.quote
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
I am a firm believer in the people.
|
||||||
|
If given the truth, they can be depended upon to meet a national crisis.
|
||||||
|
The great point is to bring them the real facts.
|
||||||
|
-- Abraham Lincoln
|
||||||
3
.local/share/pyquotes/truth/rakete_wisdom.quote
Normal file
3
.local/share/pyquotes/truth/rakete_wisdom.quote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Acknowleding that there is no definitive stage of wisdom
|
||||||
|
is a necessary step on the path leading to it.
|
||||||
|
-- rakete
|
||||||
6
.local/share/pyquotes/truth/schopenhauer_stupidity.quote
Normal file
6
.local/share/pyquotes/truth/schopenhauer_stupidity.quote
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
If you come across any special trait of meanness or stupidity ... you must be
|
||||||
|
careful not to let it annoy or distress you, but to look upon it merely as an
|
||||||
|
addition to your knowledge -- a new fact to be considered in studying the
|
||||||
|
character of humanity. Your attitude towards it will be that of the
|
||||||
|
mineralogist who stumbles upon very characteristic specimen of a mineral.
|
||||||
|
-- Arthur Schopenhauer
|
||||||
2
.local/share/pyquotes/truth/twain_fool.quote
Normal file
2
.local/share/pyquotes/truth/twain_fool.quote
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
It's easier to fool people than to convince them that they have been fooled.
|
||||||
|
-- Mark Twain
|
||||||
Loading…
x
Reference in New Issue
Block a user