From c345b8005f9c882c9f354294bf12d21a62186cb7 Mon Sep 17 00:00:00 2001 From: "Skylar \"The Cobra\" Widulski" Date: Wed, 11 Jan 2023 21:05:27 -0500 Subject: [PATCH] Init Signed-off-by: Skylar "The Cobra" Widulski --- LICENSE | 661 ++++++++++++++++++++++++++++++++++++++ README.md | 8 + main.py | 480 +++++++++++++++++++++++++++ static/css/main.css | 96 ++++++ static/img/favicon.png | Bin 0 -> 4292 bytes static/img/favicon.xcf | Bin 0 -> 8729 bytes static/img/logo.png | Bin 0 -> 36277 bytes static/img/logo.xcf | Bin 0 -> 72883 bytes templates/400.html | 35 ++ templates/404.html | 35 ++ templates/collection.html | 56 ++++ templates/fact-check.html | 45 +++ templates/index.html | 39 +++ templates/list.html | 56 ++++ templates/news.html | 44 +++ templates/sitemap.html | 40 +++ 16 files changed, 1595 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 main.py create mode 100644 static/css/main.css create mode 100644 static/img/favicon.png create mode 100644 static/img/favicon.xcf create mode 100644 static/img/logo.png create mode 100644 static/img/logo.xcf create mode 100644 templates/400.html create mode 100644 templates/404.html create mode 100644 templates/collection.html create mode 100644 templates/fact-check.html create mode 100644 templates/index.html create mode 100644 templates/list.html create mode 100644 templates/news.html create mode 100644 templates/sitemap.html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5943a8f --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Suds +Suds is a privacy-respecting frontend to Snopes.com + +# Instances +See instances.json + +# Run your own instance +To be written diff --git a/main.py b/main.py new file mode 100644 index 0000000..f0cba51 --- /dev/null +++ b/main.py @@ -0,0 +1,480 @@ +#!/usr/bin/env python + +from flask import Flask, render_template, request, redirect, Response, stream_with_context +import requests +import html +import re +import sys +from bs4 import BeautifulSoup +from copy import copy + +def secondary_list(path): + data = requests.get("https://www.snopes.com/" + path) + + if data.status_code == 200: + soup = BeautifulSoup(data.text, "html.parser") + + # Tags + tags = [] + for tag in soup.select(".tag_wrapper"): + tag.a["href"] = tag.a["href"].replace("https://www.snopes.com", '') + tag_link = tag.a["href"] + tag_name = tag.text + tags.append([tag_link, tag_name]) + + # Header + article_type = soup.find(attrs={"class": ["section_title"]}) + if (article_type.find("svg") != None): + article_type.find("svg").decompose() + article_type_head = soup.find(attrs={"class": ["img_title_wrap"]}) + description = soup.find(attrs={"class": ["desc_cont_wrap"]}).text + + # Article list + article_list = [] + for div in soup.select(".article_wrapper"): + div.a["href"] = div.a["href"].replace("https://www.snopes.com", '') + link = div.a["href"] + image = "/proxy/?url=" + div.select("img")[0].get("data-src") + alt = div.select("img")[0].get("alt") + if len(list(div.select(".article_text"))) != 0: + text = div.find(attrs={"class": ["article_text"]}) + title = text.select("h3")[0].text + author = '' + if text.select(".article_author") != []: + author = text.find(attrs={"class": ["article_author"]}).text + date = text.find(attrs={"class": ["article_date"]}).text + byline = text.find(attrs={"class": ["article_byline"]}).text + article_list.append([link, image, alt, title, author, date, byline]) + + # Next/previous buttons + prev_button = next_button = '' + if soup.select("#both-buttons") != []: + buttons = soup.select("#both-buttons")[0].select("a") + prev_button = buttons[0] + next_button = buttons[1] + pagenumber = soup.find(attrs={"class": ["pagenumber"]}).text + + return [article_type, description, article_list, prev_button, next_button, pagenumber, tags, article_type.text] + + else: + return data.status_code + + +def article_list(path): + data = requests.get("https://www.snopes.com/" + path) + + if data.status_code == 200: + soup = BeautifulSoup(data.text, "html.parser") + + # Tags + tags = [] + for tag in soup.select(".tag_wrapper"): + tag.a["href"] = tag.a["href"].replace("https://www.snopes.com", '') + tag_link = tag.a["href"] + tag_name = tag.text + tags.append([tag_link, tag_name]) + + # Header + article_type = soup.find(attrs={"class": ["section_title"]}) + article_type.find("svg").decompose() + article_type_head = soup.find(attrs={"class": ["img_title_wrap"]}) + description = soup.find(attrs={"class": ["page_desc_wrapper"]}).text + + # Article list + article_list = [] + for div in soup.select(".article_wrapper"): + div.a["href"] = div.a["href"].replace("https://www.snopes.com", '') + link = div.a["href"] + image = "/proxy/?url=" + div.select("img")[0].get("data-src") + alt = div.select("img")[0].get("alt") + if len(list(div.select(".article_text"))) != 0: + text = div.find(attrs={"class": ["article_text"]}) + title = text.select("h3")[0].text + author = text.find(attrs={"class": ["article_author"]}).text + date = text.find(attrs={"class": ["article_date"]}).text + byline = text.find(attrs={"class": ["article_byline"]}).text + article_list.append([link, image, alt, title, author, date, byline]) + + # Next/previous buttons + buttons = soup.select("#both-buttons")[0].select("a") + prev_button = buttons[0] + next_button = buttons[1] + pagenumber = soup.find(attrs={"class": ["pagenumber"]}).text + + return [article_type, description, article_list, prev_button, next_button, pagenumber, tags, article_type.text] + + else: + return data.status_code + + +def news(path): + data = requests.get("https://www.snopes.com/" + path) + + if data.status_code == 200: + soup = BeautifulSoup(data.text, "html.parser") + + # Header + article_type = soup.find(attrs={"class": ["section_title"]}) + article_type.find("svg").decompose() + title_container = soup.find(attrs={"class": ["title-container"]}) + title = title_container.select("h1")[0].text + subtitle = title_container.select("h2")[0].text + author_container = title_container.find(attrs={"class": ["author_info_wrapper"]}) + author_button = author_container.select("h3 a")[0] + author_link = author_button.get('href') + author = author_button.text + date = author_container.find(attrs={"class": ["published_date"]}).text + + # Cover image + cover = soup.find(attrs={"id": ["cover-main"]}).get("src") + cover_alt = soup.find(attrs={"id": ["cover-main"]}).get("alt") + cover_desc = "" + if soup.find(attrs={"class": ["article_img_desc"]}).select("span") != []: + cover_desc = soup.find(attrs={"class": ["article_img_desc"]}).select("span")[0].text + + # Article + article = soup.find(attrs={"id": ["article-content"]}) + + for div in article.select("div"): div.decompose() + for script in article.select("script"): script.decompose() + + for a in article.select("p a:has(img)"): + a["href"] = re.sub(r"^(.*)$", r"/proxy/?url=\1", a["href"]) + article = re.sub(r"(src=\")", r"\1/proxy/?url=", str(article)) + + # Author bio + author_bio = soup.select("div.author_bio p")[0].text + + return [article_type, title, subtitle, author.strip(), author_link, date, cover, cover_alt, cover_desc, article, author_bio] + else: + return data.status_code + +def fact_check(path): + data = requests.get("https://www.snopes.com/fact-check/" + path) + + if data.status_code == 200: + soup = BeautifulSoup(data.text, "html.parser") + + # Header + article_type = soup.find(attrs={"class": ["section_title"]}) + article_type.find("svg").decompose() + article_type = article_type.text + title_container = soup.find(attrs={"class": ["title-container"]}) + title = title_container.select("h1")[0].text + subtitle = title_container.select("h2")[0].text + author_container = title_container.find(attrs={"class": ["author_info_wrapper"]}) + author_button = author_container.select("h3 a")[0] + author_link = author_button.get('href') + author = author_button.text + date = author_container.find(attrs={"class": ["published_date"]}).text + + # Cover image + cover = soup.find(attrs={"id": ["cover-main"]}).get("src") + cover_alt = soup.find(attrs={"id": ["cover-main"]}).get("alt") + cover_desc = "" + if soup.find(attrs={"class": ["article_img_desc"]}).select("span") != []: + cover_desc = soup.find(attrs={"class": ["article_img_desc"]}).select("span")[0].text + + # Article + article = soup.find(attrs={"id": ["article-content"]}) + rating = copy(article.find(attrs={"id": ["fact_check_rating_container"]})) + + for div in article.select("div"): div.decompose() + for script in article.select("script"): script.decompose() + article.find("section").decompose() + + for a in article.select("p a:has(img)"): + a["href"] = re.sub(r"^(.*)$", r"/proxy/?url=\1", a["href"]) + article = re.sub(r"(src=\")", r"\1/proxy/?url=", str(article)) + + rating.find("svg").decompose() + rating.find("img").decompose() + + # Author bio + author_bio = soup.select("div.author_bio p")[0].text + + return [article_type, title, subtitle, author.strip(), author_link, date, cover, cover_alt, cover_desc, rating, article, author_bio] + else: + return data.status_code + +app = Flask(__name__, template_folder="templates", static_folder="static") + +@app.route('/fact-check/') +def route_fact_check_list(): + if request.args.get('pagenum') != None: + data = article_list(f"fact-check/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("fact-check/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/fact-check/category//') +def route_fact_check_category(category): + if request.args.get('pagenum') != None: + data = secondary_list(f"fact-check/category/{category}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"fact-check/category/{category}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/fact-check/rating//') +def route_fact_check_rating(rating): + if request.args.get('pagenum') != None: + data = secondary_list(f"fact-check/rating/{rating}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"fact-check/rating/{rating}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/latest/') +def route_latest(): + if request.args.get('pagenum') != None: + data = article_list(f"latest/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("latest/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/top/') +def route_top(): + if request.args.get('pagenum') != None: + data = article_list(f"top/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("top/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/news/') +def route_news_list(): + if request.args.get('pagenum') != None: + data = article_list(f"news/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("news/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/news/category//') +def route_news_category(category): + if request.args.get('pagenum') != None: + data = secondary_list(f"news/category/{category}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"news/category/{category}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/articles/') +def route_articles(): + if request.args.get('pagenum') != None: + data = article_list(f"articles/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("articles/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/classics/') +def route_classics(): + if request.args.get('pagenum') != None: + data = article_list(f"classics/?pagenum={request.args.get('pagenum')}") + else: + data = article_list("classics/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/news////
/') +def route_news(year, month, day, article): + data = news(f"news/{year}/{month}/{day}/{article}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("news.html", data=data) + +@app.route('/articles//
/') +def route_article(article_id, article): + data = news(f"articles/{article_id}/{article}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("news.html", data=data) + +@app.route('/fact-check/
/') +def route_fact_check(article): + data = fact_check(article) + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("fact-check.html", data=data) + +@app.route('/author//') +def route_author(author): + if request.args.get('pagenum') != None: + data = secondary_list(f"author/{author}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"author/{author}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/tag//') +def route_tag(tag): + if request.args.get('pagenum') != None: + data = secondary_list(f"tag/{tag}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"tag/{tag}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/collections/') +def route_collections(): + if request.args.get('pagenum') != None: + data = secondary_list(f"collections/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list("collections/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/collections//') +def route_collection(collection): + data = requests.get(f"https://www.snopes.com/collections/{collection}/") + print(data) + if data.status_code != 200: + return Response(render_template(str(data.status_code) + ".html"), data.status_code) + soup = BeautifulSoup(data.text, "html.parser") + + # Header + article_type = soup.find(attrs={"class": ["section_title"]}) + article_type.find("svg").decompose() + article_type = article_type.text + title_container = soup.find(attrs={"class": ["title-container"]}) + title = title_container.select("h1")[0].text + subtitle = title_container.select("h2")[0].text + author_container = title_container.find(attrs={"class": ["author_info_wrapper"]}) + author_button = author_container.select("h3 a")[0] + author_link = author_button.get('href') + author = author_button.text + date = author_container.find(attrs={"class": ["published_date"]}).text + + # Cover image + cover = soup.find(attrs={"id": ["cover-main"]}).get("src") + cover_alt = soup.find(attrs={"id": ["cover-main"]}).get("alt") + cover_desc = "" + if soup.find(attrs={"class": ["article_img_desc"]}).select("span") != []: + cover_desc = soup.find(attrs={"class": ["article_img_desc"]}).select("span")[0].text + + # Article + article = soup.find(attrs={"id": ["article-content"]}) + article_copy = copy(article) + + for div in article.select("div"): div.decompose() + for script in article.select("script"): script.decompose() + + for a in article.select("p a:has(img)"): + a["href"] = re.sub(r"^(.*)$", r"/proxy/?url=\1", a["href"]) + article = re.sub(r"(src=\")", r"\1/proxy/?url=", str(article)) + + # Author bio + author_bio = soup.select("div.author_bio p")[0].text + + # Article list + article_list = [] + for div in article_copy.select(".article_wrapper"): + div.a["href"] = div.a["href"].replace("https://www.snopes.com", '') + link = div.a["href"] + image = "/proxy/?url=" + div.select("img")[0].get("data-src") + alt = div.select("img")[0].get("alt") + if len(list(div.select(".article_text"))) != 0: + text = div.find(attrs={"class": ["article_text"]}) + title = text.select("h3")[0].text + date = text.find(attrs={"class": ["article_date"]}).text + byline = text.find(attrs={"class": ["article_byline"]}).text + article_list.append([link, image, alt, title, date, byline]) + + + return render_template("collection.html", data=[article_type, title, subtitle, author_link, str(author).strip(), date, cover, cover_alt, cover_desc, article, author_bio, article_list]) + +@app.route('/search/') +def route_search_blank(): + if request.args.get('q') == None: + if request.args.get('pagenum') != None: + data = secondary_list(f"search/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list("search/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + else: + return redirect(f"/search/{request.args.get('q')}/") + +@app.route('/search//') +def route_search(query): + if request.args.get('pagenum') != None: + data = secondary_list(f"search/{query}/?pagenum={request.args.get('pagenum')}") + else: + data = secondary_list(f"search/{query}/") + if type(data) == int: + return Response(render_template(str(data) + ".html"), data) + return render_template("list.html", data=data) + +@app.route('/random/') +def route_random(): + data = requests.get("https://www.snopes.com/random/") + if data.status_code != 200: + return Response(render_template(str(data.status_code) + ".html"), data.status_code) + return redirect(data.url.replace("https://www.snopes.com", ''), 307) + +@app.route('/sitemap/') +def route_sitemap(): + data = requests.get("https://www.snopes.com/sitemap/") + if data.status_code != 200: + return Response(render_template(str(data.status_code) + ".html"), data.status_code) + + soup = BeautifulSoup(data.text, "html.parser") + title = soup.find("h2").text + archives = [] + for archive_box in soup.select(".archive_box"): + archive_type = archive_box.find(attrs={"class": ["section_title"]}) + if (archive_type.find("svg") != None): + archive_type.find("svg").decompose() + archive_sections = [] + for archive_section_item in archive_box.select(".archive_section_item"): + archive_section_item.a["href"] = archive_section_item.a["href"].replace("https://www.snopes.com", '') + archive_sections.append(archive_section_item.a) + archives.append([archive_type, archive_sections]) + + return render_template("sitemap.html", data=[title, archives]) + +@app.route('/') +def route_home(): + return render_template("index.html") + + +@app.route('/proxy/') +def route_proxy(): + url = request.args.get("url") + if url != None: + if url.startswith("https://mediaproxy.snopes.com/") or url.startswith("https://media.snopes.com/") or url.startswith("https://www.snopes.com/"): + data = requests.get(url) + return Response(data.content, content_type=data.headers["content-type"]) + else: + return Response(render_template("400.html"), status=400) + else: + return Response(render_template("400.html"), status=400) + +@app.before_request +def add_slash(): + if not request.path.endswith('/'): + return redirect(request.path + '/') + +@app.errorhandler(404) +def not_found(e): + return render_template("404.html") + +if __name__ == '__main__': + app.run(port=8001) diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..1aff437 --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,96 @@ +body { + font-family: DejaVu Sans Mono, monospace; + margin:20px auto; + line-height:1.5em; + font-size:1.1em; + background-color:#282c34; + max-width:100vw; + color:#bbc2cf; + padding:0 10px; + hyphens:auto; +} + + +a { color:#ff6c6b; text-decoration:none; } +a:hover { color:#ff6c6b; text-decoration:underline; } + +h1,h2,h3,.fact_check_info_title { + line-height:1.2; + color:#51afef; + font-size:1.3em; +} +h2 { font-size:1.2em; } +h3,.fact_check_info_title { font-size:1.1em; } + +pre,code { + tab-size:8; + background: #20232a; + color: #969ba6; + border: 1px solid lightgrey; + padding: 5px; + tab-size:4; +} + +blockquote { + border-left: 10px solid #969ba6; + padding-left: 10px; + margin-right: 10px; +} + +#article-content img { + display:flex; + max-width:90vw; + height:auto; + margin:auto; +} + +.rating_title_wrap { + font-weight:bold; + font-size:1.2em; +} + +.about_this_rating { + font-weight:thin; + font-size:0.7em; + display:inline; +} + +.wrapper_title { + font-weight:bold; +} + +.claim_cont { + line-height:normal; + font-weight:normal; +} + +.claim_wrapper,.rating_wrapper,.fact_check_info_wrapper { + border:2px solid lightgrey; + padding:5px; +} + +.badgetype_text { + padding-left: 15px; +} + +ul.archives { + display:flex; + flex-wrap:wrap; + justify-content:space-between; + min-width:200px; + border:1px solid lightgrey; + padding-top:20px; + padding-bottom:15px; + margin:20px; + list-style-type:none; + line-height:3em; + text-align:center; + align:center; +} + +ul.archives li { + flex-grow:0; + flex-shrink:1; + flex-basis:33%; + translate: -10% 0; +} diff --git a/static/img/favicon.png b/static/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..92baa42bd9a82acf1167927c15961ab4ded30883 GIT binary patch literal 4292 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 l{Bw8GC##z-4wM4YIsN0;ySA^HJAP2?4B literal 0 HcmV?d00001 diff --git a/static/img/logo.png b/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..661e6da556122f45e581169589b5b97764a91244 GIT binary patch literal 36277 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 literal 0 HcmV?d00001 diff --git a/static/img/logo.xcf b/static/img/logo.xcf new file mode 100644 index 0000000000000000000000000000000000000000..1d323ac610bb873b0c508427f6ea1ecaa21e6368 GIT binary patch literal 72883 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 z%0A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 RIy~~m(!9vArH$?Qe*gm&6j%TN literal 0 HcmV?d00001 diff --git a/templates/400.html b/templates/400.html new file mode 100644 index 0000000..f301e0b --- /dev/null +++ b/templates/400.html @@ -0,0 +1,35 @@ + + + + 400 - Suds + + + + + + +

+
+
+

400

+

The request was malformed

+
+
+

Source code

+ + diff --git a/templates/404.html b/templates/404.html new file mode 100644 index 0000000..547552e --- /dev/null +++ b/templates/404.html @@ -0,0 +1,35 @@ + + + + 404 - Suds + + + + + + + +
+
+

404

+

This resource cannot be found

+
+
+

Source code

+ + diff --git a/templates/collection.html b/templates/collection.html new file mode 100644 index 0000000..f28fa6f --- /dev/null +++ b/templates/collection.html @@ -0,0 +1,56 @@ + + + + {{ data[1] }} - Suds + + + + + + + +
+

{{ data[0]|safe }}

+

{{ data[1] }}

+

{{ data[2] }}

+

by {{ data[4] }}, {{ data[5] }}

+
+ {{ data[7] }} +

{{ data[8] }}

+
+ {{ data[9]|safe }} +
+

By {{ data[4] }}

+ +

{{ data[10] }}

+ + {% for article in data[11] %} + {{ article[2] }} +
+

{{ article[3] }}

+

{{ article[4] }}

+

{{ article[5] }}

+

Read More

+
+
+ + {% endfor %} +
+

Source code

+ + diff --git a/templates/fact-check.html b/templates/fact-check.html new file mode 100644 index 0000000..409972e --- /dev/null +++ b/templates/fact-check.html @@ -0,0 +1,45 @@ + + + + {{ data[1] }} - Suds + + + + + + + +
+

{{ data[0]|safe }}

+

{{ data[1] }}

+

{{ data[2] }}

+

by {{ data[3] }}, {{ data[5] }}

+
+ {{ data[7] }} +

{{ data[8] }}

+
+ {{ data[9]|safe }} +
+ {{ data[10]|safe }} +
+

By {{ data[3] }}

+

{{ data[11] }}

+
+

Source code

+ + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..9576cf6 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,39 @@ + + + + Suds + + + + + + + +
+ +
+ +
+ + +
+
+
+

Source code

+ + diff --git a/templates/list.html b/templates/list.html new file mode 100644 index 0000000..6631691 --- /dev/null +++ b/templates/list.html @@ -0,0 +1,56 @@ + + + + {{ data[7] }} - Suds + + + + + + + +
+ # + {% for tag in data[6] %} + {{ tag[1] }} +    + {% endfor %} +

{{ data[0]|safe }}

+

{{ data[1] }}

+ {% for article in data[2] %} + {{ article[2] }} +
+

{{ article[3] }}

+

{{ article[4] }}

+

{{ article[5] }}

+

{{ article[6] }}

+

Read More

+
+
+ + {% endfor %} + +
+ {{ data[3]|safe }} + {{ data[4]|safe }} +

{{ data[5] }}

+
+
+

Source code

+ + diff --git a/templates/news.html b/templates/news.html new file mode 100644 index 0000000..6cde086 --- /dev/null +++ b/templates/news.html @@ -0,0 +1,44 @@ + + + + {{ data[1] }} - Suds + + + + + + + +
+

{{ data[0]|safe }}

+

{{ data[1] }}

+

{{ data[2] }}

+

by {{ data[3] }}, {{ data[5] }}

+
+ {{ data[7] }} +

{{ data[8] }}

+
+ {{ data[9]|safe }} +
+

By {{ data[3] }}

+ +

{{ data[10] }}

+
+

Source code

+ + diff --git a/templates/sitemap.html b/templates/sitemap.html new file mode 100644 index 0000000..7608913 --- /dev/null +++ b/templates/sitemap.html @@ -0,0 +1,40 @@ + + + + {{ data[0] }} - Suds + + + + + + + +
+

{{ data[0] }}

+ {% for archive in data[1] %} + {{ archive[0]|safe }} +
    + {% for archive_section in archive[1] %} +
  • {{ archive_section|safe }}
  • + {% endfor %} +
+ {% endfor %} +
+

Source code

+ +