Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Remove the old Java/PHP code

  • Loading branch information...
commit 0e271259ca7e11a48f9bb9394029f85a4dbd1347 1 parent 3c2a816
@lalinsky authored
Showing with 0 additions and 9,465 deletions.
  1. +0 −12 old/.bzrignore
  2. +0 −674 old/COPYING.txt
  3. +0 −20 old/README.txt
  4. +0 −24 old/admin/cron/import-sha-chroma.sh
  5. +0 −9 old/admin/dumpconfig.py
  6. +0 −6 old/admin/etc/cron/acoustid
  7. +0 −8 old/admin/etc/jetty/acoustid-server.d/override-web.xml
  8. +0 −6 old/admin/etc/jetty/acoustid-server.xml
  9. +0 −88 old/admin/etc/nginx/acoustid
  10. +0 −79 old/admin/import-data.py
  11. +0 −67 old/admin/import-sha-chroma.py
  12. +0 −50 old/admin/initdb.sh
  13. +0 −13 old/admin/psql.sh
  14. +0 −11 old/conf/acoustid.xml.default
  15. +0 −7 old/conf/override-web.xml
  16. +0 −188 old/misc/web-design/homepage.svg
  17. BIN  old/misc/web-design/sprite.xcf
  18. +0 −80 old/pom.xml
  19. +0 −111 old/server/pom.xml
  20. +0 −132 old/server/src/main/java/org/acoustid/server/ApplicationContext.java
  21. +0 −65 old/server/src/main/java/org/acoustid/server/ApplicationContextListener.java
  22. +0 −54 old/server/src/main/java/org/acoustid/server/Chromaprint.java
  23. +0 −32 old/server/src/main/java/org/acoustid/server/Context.java
  24. +0 −44 old/server/src/main/java/org/acoustid/server/DatabaseConnectionCustomizer.java
  25. +0 −73 old/server/src/main/java/org/acoustid/server/DispatcherServlet.java
  26. +0 −71 old/server/src/main/java/org/acoustid/server/RequestContext.java
  27. +0 −52 old/server/src/main/java/org/acoustid/server/RequestContextListener.java
  28. +0 −72 old/server/src/main/java/org/acoustid/server/RequestModule.java
  29. +0 −36 old/server/src/main/java/org/acoustid/server/ServerModule.java
  30. +0 −33 old/server/src/main/java/org/acoustid/server/handler/BadRequestException.java
  31. +0 −27 old/server/src/main/java/org/acoustid/server/handler/Handler.java
  32. +0 −47 old/server/src/main/java/org/acoustid/server/handler/HandlerException.java
  33. +0 −21 old/server/src/main/java/org/acoustid/server/handler/HelloHandler.java
  34. +0 −26 old/server/src/main/java/org/acoustid/server/handler/RequestHandler.java
  35. +0 −43 old/server/src/main/java/org/acoustid/server/handler/admin/MemoryStatusHandler.java
  36. +0 −48 old/server/src/main/java/org/acoustid/server/handler/admin/StatusHandler.java
  37. +0 −51 old/server/src/main/java/org/acoustid/server/handler/admin/SubmissionImportHandler.java
  38. +0 −36 old/server/src/main/java/org/acoustid/server/handler/website/IndexHandler.java
  39. +0 −142 old/server/src/main/java/org/acoustid/server/handler/ws/LookupHandler.java
  40. +0 −180 old/server/src/main/java/org/acoustid/server/handler/ws/SubmitHandler.java
  41. +0 −102 old/server/src/main/java/org/acoustid/server/handler/ws/WebServiceRequestHandler.java
  42. +0 −38 old/server/src/main/java/org/acoustid/server/util/MissingParameterException.java
  43. +0 −47 old/server/src/main/java/org/acoustid/server/util/ParameterFormatException.java
  44. +0 −179 old/server/src/main/java/org/acoustid/server/util/ParameterMap.java
  45. +0 −199 old/server/src/main/java/org/acoustid/server/util/SimpleXMLStreamWriter.java
  46. +0 −17 old/server/src/main/webapp/WEB-INF/web.xml
  47. +0 −32 old/server/src/test/java/org/acoustid/server/ChromaprintTest.java
  48. +0 −259 old/server/src/test/java/org/acoustid/server/handler/ws/LookupHandlerTest.java
  49. +0 −255 old/server/src/test/java/org/acoustid/server/handler/ws/SubmitHandlerTest.java
  50. +0 −85 old/tools/pom.xml
  51. +0 −50 old/tools/src/main/java/org/acoustid/Account.java
  52. +0 −59 old/tools/src/main/java/org/acoustid/Application.java
  53. +0 −105 old/tools/src/main/java/org/acoustid/Fingerprint.java
  54. +0 −58 old/tools/src/main/java/org/acoustid/FingerprintSearchResult.java
  55. +0 −49 old/tools/src/main/java/org/acoustid/FingerprintUtils.java
  56. +0 −40 old/tools/src/main/java/org/acoustid/Format.java
  57. +0 −30 old/tools/src/main/java/org/acoustid/ImportIncomingCommand.java
  58. +0 −67 old/tools/src/main/java/org/acoustid/Source.java
  59. +0 −50 old/tools/src/main/java/org/acoustid/SourceValidator.java
  60. +0 −94 old/tools/src/main/java/org/acoustid/Submission.java
  61. +0 −153 old/tools/src/main/java/org/acoustid/SubmissionImporter.java
  62. +0 −49 old/tools/src/main/java/org/acoustid/Track.java
  63. +0 −26 old/tools/src/main/java/org/acoustid/data/AccountData.java
  64. +0 −26 old/tools/src/main/java/org/acoustid/data/ApplicationData.java
  65. +0 −54 old/tools/src/main/java/org/acoustid/data/DataException.java
  66. +0 −84 old/tools/src/main/java/org/acoustid/data/FingerprintData.java
  67. +0 −30 old/tools/src/main/java/org/acoustid/data/FormatData.java
  68. +0 −30 old/tools/src/main/java/org/acoustid/data/SourceData.java
  69. +0 −33 old/tools/src/main/java/org/acoustid/data/SubmissionData.java
  70. +0 −49 old/tools/src/main/java/org/acoustid/data/TrackData.java
  71. +0 −25 old/tools/src/main/java/org/acoustid/data/Transaction.java
  72. +0 −51 old/tools/src/main/java/org/acoustid/data/sql/AbstractFingerprintData.java
  73. +0 −35 old/tools/src/main/java/org/acoustid/data/sql/Data.java
  74. +0 −77 old/tools/src/main/java/org/acoustid/data/sql/DataUtils.java
  75. +0 −49 old/tools/src/main/java/org/acoustid/data/sql/SQLAccountData.java
  76. +0 −50 old/tools/src/main/java/org/acoustid/data/sql/SQLApplicationData.java
  77. +0 −179 old/tools/src/main/java/org/acoustid/data/sql/SQLFingerprintData.java
  78. +0 −72 old/tools/src/main/java/org/acoustid/data/sql/SQLFormatData.java
  79. +0 −76 old/tools/src/main/java/org/acoustid/data/sql/SQLSourceData.java
  80. +0 −133 old/tools/src/main/java/org/acoustid/data/sql/SQLSubmissionData.java
  81. +0 −95 old/tools/src/main/java/org/acoustid/data/sql/SQLTrackData.java
  82. +0 −54 old/tools/src/main/java/org/acoustid/data/sql/SQLTransaction.java
  83. +0 −56 old/tools/src/main/java/org/acoustid/musicbrainz/MusicBrainzTrack.java
  84. +0 −27 old/tools/src/main/java/org/acoustid/musicbrainz/data/MusicBrainzPUIDData.java
  85. +0 −54 old/tools/src/main/java/org/acoustid/musicbrainz/data/sql/SQLMusicBrainzPUIDData.java
  86. +0 −56 old/tools/src/main/java/org/acoustid/test/DatabaseTestCase.java
  87. +0 −43 old/tools/src/main/java/org/acoustid/util/BitStreamReader.java
  88. +0 −52 old/tools/src/main/java/org/acoustid/util/BitStreamWriter.java
  89. +0 −98 old/tools/src/main/java/org/acoustid/util/FingerprintCompressor.java
  90. +0 −107 old/tools/src/main/java/org/acoustid/util/FingerprintDecompressor.java
  91. +0 −35 old/tools/src/main/java/org/acoustid/util/IncompatibleFingerprintVersion.java
  92. +0 −158 old/tools/src/test/java/org/acoustid/FingerprintTest.java
  93. +0 −92 old/tools/src/test/java/org/acoustid/SourceValidatorTest.java
  94. +0 −223 old/tools/src/test/java/org/acoustid/SubmissionImporterTest.java
  95. +0 −42 old/tools/src/test/java/org/acoustid/data/AccountDataTest.java
  96. +0 −43 old/tools/src/test/java/org/acoustid/data/ApplicationDataTest.java
  97. +0 −305 old/tools/src/test/java/org/acoustid/data/FingerprintDataTest.java
  98. +0 −70 old/tools/src/test/java/org/acoustid/data/FormatDataTest.java
  99. +0 −91 old/tools/src/test/java/org/acoustid/data/SourceDataTest.java
  100. +0 −73 old/tools/src/test/java/org/acoustid/data/SubmissionDataTest.java
  101. +0 −72 old/tools/src/test/java/org/acoustid/data/TrackDataTest.java
  102. +0 −58 old/tools/src/test/java/org/acoustid/musicbrainz/data/sql/SQLMusicBrainzPUIDDataTest.java
  103. +0 −67 old/tools/src/test/java/org/acoustid/util/BitStreamReaderTest.java
  104. +0 −77 old/tools/src/test/java/org/acoustid/util/BitStreamWriterTest.java
  105. +0 −65 old/tools/src/test/java/org/acoustid/util/FingerprintCompressorTest.java
  106. +0 −67 old/tools/src/test/java/org/acoustid/util/FingerprintDecompressorTest.java
  107. +0 −6 old/tools/src/test/resources/log4j.properties
  108. BIN  old/web/acoustid.png
  109. +0 −14 old/web/api-key.php
  110. +0 −15 old/web/applications.php
  111. +0 −8 old/web/index.php
  112. +0 −24 old/web/lib/ApplicationData.php
  113. +0 −106 old/web/lib/StatsUtils.php
  114. +0 −74 old/web/lib/UserData.php
  115. +0 −14 old/web/lib/config.php.dist
  116. +0 −38 old/web/lib/init.php
  117. +0 −650 old/web/lib/openid.php
  118. +0 −9 old/web/license.php
  119. +0 −111 old/web/login.php
  120. +0 −8 old/web/logout.php
  121. +0 −12 old/web/new-api-key.php
  122. +0 −42 old/web/new-application.php
  123. +0 −5 old/web/phpinfo.php
  124. +0 −27 old/web/stats.php
  125. +0 −11 old/web/test.php
  126. +0 −18 old/web/tpl/api-key.php
  127. +0 −39 old/web/tpl/applications.php
  128. +0 −14 old/web/tpl/footer.php
  129. +0 −41 old/web/tpl/header.php
  130. +0 −20 old/web/tpl/index.php
  131. +0 −20 old/web/tpl/license.php
  132. +0 −53 old/web/tpl/login.php
  133. +0 −21 old/web/tpl/new-application.php
  134. +0 −51 old/web/tpl/stats.php
View
12 old/.bzrignore
@@ -1,12 +0,0 @@
-./target
-nbactions.xml
-./conf/acoustid.xml
-.classpath
-.project
-.settings
-./postgresql/acoustid.sql
-./postgresql/results
-./postgresql/regression.*
-./server/target
-./tools/target
-./web/lib/config.php
View
674 old/COPYING.txt
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is 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. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- 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.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- 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 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. Use with the GNU Affero General Public License.
-
- 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 Affero 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 special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 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 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 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.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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 <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- 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 GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
View
20 old/README.txt
@@ -1,20 +0,0 @@
-Acoustid Server
-===============
-
-Compile and install a PostgreSQL extension used by the server code:
-
-$ cd postgresql
-$ make
-$ sudo make install
-
-Compile Java source code:
-
-$ mvn install
-
-Run the server on a development machine:
-
-$ cp conf/acoustid.xml.default conf/acoustid.xml
-$ vim conf/acoustid.xml
-$ cd server
-$ mvn jetty:run
-
View
24 old/admin/cron/import-sha-chroma.sh
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-LOCKDIR=/var/lock/acoustid-import-sha-chroma.lock
-
-#perl -e 'exit 1 if `cut -f1 -d" " /proc/loadavg` > 0.6;' || exit 0
-
-mkdir $LOCKDIR 2>/dev/null
-LOCKED=$?
-if [ $LOCKED == 1 ]; then
- PID=`cat $LOCKDIR/pid`
- if [ -d /proc/$PID ]; then
- echo "already running" >/dev/null
- else
- echo "stale lock for PID $PID, removing"
- rm -rf $LOCKDIR
- fi
- exit 0
-fi
-
-trap "rm -rf $LOCKDIR" EXIT
-echo $$ >$LOCKDIR/pid
-
-
-/home/acoustid/acoustid-server/admin/import-sha-chroma.py /home/acoustid/acoustid-server/conf/acoustid.xml
View
9 old/admin/dumpconfig.py
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from xml.etree import ElementTree
-
-tree = ElementTree.parse(sys.argv[1])
-for elem in tree.find('database'):
- print 'DB_%s=%s' % (elem.tag.upper(), elem.text)
-
View
6 old/admin/etc/cron/acoustid
@@ -1,6 +0,0 @@
-MAILTO=acoustid
-
-40 1 * * * acoustid if [ -x /home/acoustid/acoustid-server/admin/cron/daily.sh ]; then /home/acoustid/acoustid-server/admin/cron/daily.sh; fi
-50 * * * * acoustid if [ -x /home/acoustid/acoustid-server/admin/cron/hourly.sh ]; then /home/acoustid/acoustid-server/admin/cron/hourly.sh; fi
-*/3 * * * * acoustid if [ -x /home/acoustid/acoustid-server/admin/cron/import.sh ]; then /home/acoustid/acoustid-server/admin/cron/import.sh; fi
-
View
8 old/admin/etc/jetty/acoustid-server.d/override-web.xml
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <context-param>
- <param-name>config</param-name>
- <param-value>/home/acoustid/acoustid-server/conf/acoustid.xml</param-value>
- </context-param>
-</web-app>
-
View
6 old/admin/etc/jetty/acoustid-server.xml
@@ -1,6 +0,0 @@
-<Configure class="org.mortbay.jetty.webapp.WebAppContext">
- <Set name="contextPath">/</Set>
- <Set name="war">/home/acoustid/release/acoustid-server-XXX.war</Set>
- <Set name="overrideDescriptor"><SystemProperty name="jetty.home" default="."/>/contexts/acoustid-server.d/override-web.xml</Set>
-</Configure>
-
View
88 old/admin/etc/nginx/acoustid
@@ -1,88 +0,0 @@
-limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
-
-upstream phpfastcgi {
- server 127.0.0.1:9000;
-}
-
-upstream jetty {
- server 127.0.0.1:8080;
-}
-
-server {
- listen 80;
- listen 443 default ssl;
- server_tokens off;
-
- server_name acoustid.org www.acoustid.org;
- server_name_in_redirect on;
-
- ssl_certificate ssl-www.acoustid.org.crt;
- ssl_certificate_key ssl-www.acoustid.org.key;
-
- access_log /var/log/nginx/acoustid.access.log;
-
- # do not allow /login on non-encrypted HTTP
- if ($scheme = "http") {
- rewrite ^(/login) https://$server_name$1 permanent;
- }
-
- # do not allow /login on non-encrypted HTTP
- if ($host != "acoustid.org") {
- rewrite ^(.*) $scheme://$server_name$1 permanent;
- }
-
- root /home/acoustid/acoustid-server/web;
- try_files $uri @website;
-
- location @website {
- rewrite ^/?$ /index.php last;
- rewrite ^/([a-z-]*) /$1.php last;
- }
-
- location ~ ^/(lib|tpl) {
- deny all;
- }
-
- location ~ \.php$ {
- internal;
-
- # limit PHP requests to 1 per second, delay fast requests
- limit_req zone=one burst=5;
-
- # check if the PHP script exists
- if (!-f $request_filename) {
- return 404;
- }
-
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_pass phpfastcgi;
- }
-
-}
-
-server {
- listen 80;
- server_tokens off;
-
- server_name api.acoustid.org;
-
- access_log /var/log/nginx/api.acoustid.access.log;
-
- rewrite ^/?$ http://wiki.acoustid.org/wiki/Web_Service permanent;
-
- location ~ ^/(submit) {
- #location ~ ^/(submit|lookup) {
- proxy_pass http://jetty;
- }
-
- location /status {
- access_log off;
- allow 127.0.0.1;
- deny all;
- proxy_pass http://jetty;
- }
-
-}
-
-
View
79 old/admin/import-data.py
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-import psycopg2
-import os
-import sys
-
-conn = psycopg2.connect("host=127.0.0.1 dbname=fp user=postgres")
-
-def signed_32b_int(i):
- if i & 0x80000000:
- return i - 0x100000000
- return i
-
-
-def reader(input):
- group = {}
- for line in input:
- line = line.strip()
- if not line:
- if group:
- yield group
- group = {}
- continue
- name, value = line.split('=', 1)
- group[name] = value
- if group:
- yield group
-
-
-def insert_source(conn, name):
- c = conn.cursor()
- c.execute("INSERT INTO source (name) VALUES (%s) RETURNING id", (name,))
- return c.fetchone()[0]
-
-
-def import_file(conn, source_id, name):
- c = conn.cursor()
- i = 0
- for entry in reader(open(name)):
- i += 1
- if 'FINGERPRINT' not in entry:
- continue
- length = int(entry['LENGTH'])
- if length > 0x7FFF:
- continue
- bitrate = int(entry['BITRATE'])
- fingerprint = [signed_32b_int(int(x, 16)) for x in entry['FINGERPRINT'].split()]
- if not fingerprint:
- continue
- metadata_id = None
- if entry['ARTIST'] or entry['TITLE'] or entry['ALBUM']:
- c.execute("INSERT INTO metadata (title, album, artist) VALUES (%s, %s, %s) RETURNING id", (
- entry['TITLE'],
- entry['ALBUM'],
- entry['ARTIST'],
- ))
- metadata_id = c.fetchone()[0]
- try:
- c.execute("INSERT INTO fingerprint (length, bitrate, fingerprint, source_id) VALUES (%s, %s, %s, %s) RETURNING id", (length, bitrate, fingerprint, source_id))
- except psycopg2.DataError, e:
- print e
- continue
- fingerprint_id = c.fetchone()[0]
- try:
- c.execute("INSERT INTO fingerprint_query (id, length, fingerprint) VALUES (%s, %s, %s)", (fingerprint_id, length, fingerprint[:463]))
- except psycopg2.DataError, e:
- print e
- continue
- if metadata_id:
- c.execute("INSERT INTO fingerprint_metadata (fingerprint_id, metadata_id) VALUES (%s, %s)", (fingerprint_id, metadata_id))
- print i, '\r',
- sys.stdout.flush()
- conn.commit()
-
-source_id = insert_source(conn, 'Import')
-for name in sys.argv[1:]:
- print name
- import_file(conn, source_id, name)
-
View
67 old/admin/import-sha-chroma.py
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-import ConfigParser
-import psycopg2
-import urllib
-import urllib2
-import sys
-import os
-from xml.etree import ElementTree
-
-config = ElementTree.parse(sys.argv[1])
-
-opts = {}
-for elem in config.find('database'):
- name = elem.tag.lower()
- if name == 'name':
- name = 'database'
- value = elem.text
- opts[name] = value
-db = psycopg2.connect(**opts)
-
-USER_API_KEY = 'ye9Bbbfd'
-CLIENT_API_KEY = 'dGA3IKKS'
-API_URL = 'http://127.0.0.1:8080/ws/v2/submit'
-BATCH_SIZE = 50
-
-cursor = db.cursor()
-cursor.execute("""
- SELECT mp.puid, length, bitrate, fp, sc.sha
- FROM
- sha_chroma sc
- JOIN sha_puid sp ON sc.sha=sp.sha
- JOIN musicbrainz.puid mp ON mp.puid=sp.puid
- LEFT JOIN sha_chroma_imported sci ON sc.sha=sci.sha
- WHERE sci.sha IS NULL AND length>0
- LIMIT 50000
-""")
-
-params = { 'user': USER_API_KEY, 'client': CLIENT_API_KEY }
-shas = set()
-i = 0
-for row in cursor:
- if row[4] in shas:
- continue
- shas.add(row[4])
- params['puid.%d' % i] = row[0]
- params['duration.%d' % i] = row[1]
- params['bitrate.%d' % i] = row[2]
- params['fingerprint.%d' % i] = row[3]
- params['foreignid.%d' % i] = 'zvq-sha:%s' % (row[4],)
- i += 1
- if i == BATCH_SIZE:
- #print "Submitting", i
- data = urllib.urlencode(params)
- urllib2.urlopen(API_URL, data)
- params = { 'user': USER_API_KEY, 'client': CLIENT_API_KEY }
- i = 0
-
-if i:
- #print "Submitting", i
- data = urllib.urlencode(params)
- urllib2.urlopen(API_URL, data)
-
-for sha in shas:
- cursor.execute("INSERT INTO sha_chroma_imported VALUES (%s)", (sha,))
-db.commit()
-
View
50 old/admin/initdb.sh
@@ -1,50 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-ADMINDIR=`dirname $0`
-eval `$ADMINDIR/dumpconfig.py $ADMINDIR/../conf/acoustid.xml`
-
-
-CREATEDB=0
-DROPDB=0
-while getopts cd name
-do
- case $name in
- c) CREATEDB=1;;
- d) DROPDB=1;;
- \?) printf "Usage: %s: [-c] [-d]\n" $0
- printf " -d Drop existing database\n"
- printf " -c Create the database before importing the structure\n"
- exit 2;;
- esac
-done
-
-PSQL=$ADMINDIR/psql.sh
-
-function install_contrib_module {
- FILENAME=`pg_config --sharedir`/contrib/$1.sql
- if [ ! -f $FILENAME ]; then
- echo "PostgreSQL extension $NAME ($FILENAME) not found" 1>&2
- exit 1
- fi
- $PSQL <$FILENAME
-}
-
-if [ $DROPDB -eq 1 ]; then
- echo "DROP DATABASE $DB_NAME;" | psql -U postgres -h $DB_HOST -p $DB_PORT -e
-fi;
-
-if [ $CREATEDB -eq 1 ]; then
- echo "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER;" | psql -U postgres -h $DB_HOST -p $DB_PORT -e
- echo "CREATE LANGUAGE plpgsql;" | psql -U postgres -h $DB_HOST -p $DB_PORT $DB_NAME -e
-fi;
-
-install_contrib_module _int
-install_contrib_module acoustid
-$PSQL -e <$ADMINDIR/sql/CreateTables.sql
-$PSQL -e <$ADMINDIR/sql/CreatePrimaryKeys.sql
-$PSQL -e <$ADMINDIR/sql/CreateFunctions.sql
-$PSQL -e <$ADMINDIR/sql/CreateFKConstraints.sql
-$PSQL -e <$ADMINDIR/sql/CreateIndexes.sql
-
View
13 old/admin/psql.sh
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-ADMINDIR=`dirname $0`
-eval `$ADMINDIR/dumpconfig.py $ADMINDIR/../conf/acoustid.xml`
-
-opts="-U $DB_USER -h $DB_HOST"
-if [ "x$DB_PORT" != "x" ]; then
- opts+=" -p $DB_PORT"
-fi
-psql $opts $DB_NAME "$@"
-
View
11 old/conf/acoustid.xml.default
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Acoustid server configuration file -->
-<acoustid-config>
- <database>
- <host>psql.example.com</host>
- <port>5432</port>
- <name>fp</name>
- <user>fp</user>
- <!-- <password>fp</password> -->
- </database>
-</acoustid-config>
View
7 old/conf/override-web.xml
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <context-param>
- <param-name>config</param-name>
- <param-value>../conf/acoustid.xml</param-value>
- </context-param>
-</web-app>
View
188 old/misc/web-design/homepage.svg
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="1024"
- height="768"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- style="display:inline"
- sodipodi:docname="homepage.svg"
- inkscape:export-filename="/home/lukas/projects/acoustid-web/homepage.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective10-9"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2841"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective10-5"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective2946"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="32.335537"
- inkscape:cx="167.03059"
- inkscape:cy="582.0463"
- inkscape:document-units="px"
- inkscape:current-layer="layer3"
- showgrid="false"
- width="1024px"
- inkscape:window-width="1280"
- inkscape:window-height="727"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="Pozadie"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:#b3b3b3"
- id="rect2871"
- width="1009.215"
- height="749.83728"
- x="4.7159576"
- y="6.3728385" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer3"
- inkscape:label="Vrstva"
- style="display:inline">
- <rect
- style="fill:#ffffff"
- id="rect2873"
- width="663.72174"
- height="239.05861"
- x="164"
- y="170.94139"
- ry="17.818033"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <g
- transform="matrix(1.8079868,0,0,1.8079868,188.99783,-1558.3094)"
- id="layer1"
- inkscape:label="Vrstva 1">
- <text
- id="text2816"
- y="995.31763"
- x="3.3569579"
- style="font-size:28.04546356px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Serif;-inkscape-font-specification:DejaVu Serif Italic"
- y="995.31763"
- x="3.3569579"
- id="tspan2818"
- sodipodi:role="line">Acoust<tspan
- id="tspan2828"
- style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#aa0000;font-family:DejaVu Serif;-inkscape-font-specification:DejaVu Serif Bold Italic">id</tspan></tspan></text>
- </g>
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold"
- x="293.51105"
- y="294.88361"
- id="text2875"><tspan
- sodipodi:role="line"
- id="tspan2877"
- x="293.51105"
- y="294.88361"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">Get API key</tspan><tspan
- sodipodi:role="line"
- x="293.51105"
- y="314.88361"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
- id="tspan2879">Documentation</tspan><tspan
- sodipodi:role="line"
- x="293.51105"
- y="334.88361"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
- id="tspan2881">Mailing list</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2883"
- style="font-size:40px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold"><flowRegion
- id="flowRegion2885"><rect
- id="rect2887"
- width="33"
- height="44"
- x="481"
- y="218" /></flowRegion><flowPara
- id="flowPara2889" /></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot2891"
- style="font-size:40px;font-style:normal;font-weight:bold;line-height:161.80951595%;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold"
- transform="matrix(1.0323725,0,0,1.0323725,-2.4410711,-10.88398)"><flowRegion
- id="flowRegion2893"><rect
- id="rect2895"
- width="340.43558"
- height="191.96864"
- x="446"
- y="189" /></flowRegion><flowPara
- id="flowPara2897"
- style="font-size:13.56099701px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"><flowSpan
- style="font-weight:bold;-inkscape-font-specification:DejaVu Sans Bold"
- id="flowSpan2913">Acoustid</flowSpan> is an open source project that attempts to create a free database of audio fingerprints with mapping to the <flowSpan
- style="fill:#0044aa"
- id="flowSpan2901">MusicBrainz</flowSpan> metadata database and provide a web service for audio file identification using this database. You can help by downloading our <flowSpan
- style="fill:#0044aa"
- id="flowSpan2899">Fingerprinter</flowSpan> application and letting it to analyze your (MusicBrainz-tagged) music collection.</flowPara></flowRoot> </g>
-</svg>
View
BIN  old/misc/web-design/sprite.xcf
Binary file not shown
View
80 old/pom.xml
@@ -1,80 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.acoustid</groupId>
- <artifactId>acoustid</artifactId>
- <packaging>pom</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>Acoustid</name>
-
- <modules>
- <module>tools</module>
- <module>server</module>
- </modules>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>1.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <version>8.4-701.jdbc4</version>
- </dependency>
- </dependencies>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.5</version>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
- <configuration>
- <encoding>UTF-8</encoding>
- <compilerVersion>1.6</compilerVersion>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.4.3</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <useFile>false</useFile>
- <systemPropertyVariables>
- <acoustidConfigFile>${basedir}/conf/acoustid.xml</acoustidConfigFile>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
-
View
111 old/server/pom.xml
@@ -1,111 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.acoustid</groupId>
- <artifactId>acoustid</artifactId>
- <version>1.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>acoustid-server</artifactId>
- <packaging>war</packaging>
- <name>Acoustid HTTP Server</name>
-
- <dependencies>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>r06</version>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- </dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.4</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- <version>4.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.0.1</version>
- </dependency>
- <dependency>
- <groupId>commons-configuration</groupId>
- <artifactId>commons-configuration</artifactId>
- <version>1.6</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- </dependency>
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.1</version>
- </dependency>
- <dependency>
- <groupId>org.acoustid</groupId>
- <artifactId>acoustid-tools</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>2.3.14</version>
- </dependency>
- </dependencies>
-
- <build>
- <finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName>
- <plugins>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.1.5.v20100705</version>
- <configuration>
- <scanIntervalSeconds>10</scanIntervalSeconds>
- <webAppConfig>
- <overrideDescriptor>../conf/override-web.xml</overrideDescriptor>
- <extraClasspath>target/classes;../tools/target/classes</extraClasspath>
- </webAppConfig>
- <scanTargets>
- <scanTarget>../tools/target/classes</scanTarget>
- </scanTargets>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <version>1.0-beta-3</version>
- <executions>
- <execution>
- <phase>validate</phase>
- <goals>
- <goal>create</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <doCheck>false</doCheck>
- <doUpdate>false</doUpdate>
- <format>{0,date,yyyyMMdd}</format>
- <items>
- <item>timestamp</item>
- </items>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
-
View
132 old/server/src/main/java/org/acoustid/server/ApplicationContext.java
@@ -1,132 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import java.sql.SQLException;
-import java.beans.PropertyVetoException;
-import com.mchange.v2.c3p0.ComboPooledDataSource;
-import java.sql.Connection;
-import java.util.Properties;
-import org.apache.commons.configuration.Configuration;
-import java.util.concurrent.atomic.AtomicInteger;
-import javax.sql.DataSource;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-
-@Singleton
-public class ApplicationContext implements Context {
-
- private static final Logger logger = Logger.getLogger(ApplicationContext.class);
- private Configuration config;
- private ComboPooledDataSource dataSource;
- private AtomicInteger lookupCount = new AtomicInteger();
- private AtomicInteger successfulLookupCount = new AtomicInteger();
- private AtomicInteger submissionCount = new AtomicInteger();
-
- @Inject
- public ApplicationContext(Configuration config) {
- this.config = config;
- dataSource = new ComboPooledDataSource();
- try {
- dataSource.setDriverClass("org.postgresql.Driver");
- }
- catch (PropertyVetoException e) {
- throw new RuntimeException("Couldn't load org.postgresql.Driver", e);
- }
- dataSource.setIdleConnectionTestPeriod(30);
- dataSource.setPreferredTestQuery("SELECT 1");
- dataSource.setConnectionCustomizerClassName("org.acoustid.server.DatabaseConnectionCustomizer");
- dataSource.setAutoCommitOnClose(false);
- dataSource.setCheckoutTimeout(1000 * 10);
- prepareDataSource();
- configureLogging();
- }
-
- private void configureLogging() {
- Properties properties = new Properties();
- properties.setProperty("log4j.rootLogger", "INFO, stderr");
- properties.setProperty("log4j.appender.stderr", "org.apache.log4j.ConsoleAppender");
- properties.setProperty("log4j.appender.stderr.target", "System.err");
- properties.setProperty("log4j.appender.stderr.layout", "org.apache.log4j.PatternLayout");
- properties.setProperty("log4j.appender.stderr.layout.ConversionPattern", "%d{yy-dd-MM HH:mm:ss} [%t] %-5p %c %x - %m%n");
- properties.setProperty("log4j.logger.org.acoustid.SubmissionImporter", "DEBUG");
- //properties.setProperty("log4j.logger.com.mchange.v2", "DEBUG");
- //properties.setProperty("log4j.logger.org.acoustid", "DEBUG");
- PropertyConfigurator.configure(properties);
- }
-
- private void prepareDataSource() {
- String jdbcUrl = "jdbc:postgresql://" + config.getString("database.host");
- String port = config.getString("database.port");
- if (port != null) {
- jdbcUrl += ":" + port;
- }
- jdbcUrl += "/" + config.getString("database.name");
- logger.info("Connecting to database with URL " + jdbcUrl + " and user " + config.getString("database.user"));
- dataSource.setJdbcUrl(jdbcUrl);
- dataSource.setUser(config.getString("database.user"));
- dataSource.setPassword(config.getString("database.password"));
- }
-
- void close() {
- dataSource.close();
- }
-
- public DataSource getDataSource() {
- return dataSource;
- }
-
- @Override
- public Connection getConnection() throws SQLException {
- logger.debug("Requesting database connection from the pool");
- return dataSource.getConnection();
- }
-
- public Configuration getConfig() {
- return config;
- }
-
- public int getLookupCount() {
- return lookupCount.intValue();
- }
-
- @Override
- public void incrementLookupCount() {
- lookupCount.incrementAndGet();
- }
-
- public int getSuccessfulLookupCount() {
- return successfulLookupCount.intValue();
- }
-
- @Override
- public void incrementSuccessfulLookupCount() {
- successfulLookupCount.incrementAndGet();
- }
-
- public int getSubmissionCount() {
- return submissionCount.intValue();
- }
-
- @Override
- public void incrementSubmissionCount() {
- submissionCount.incrementAndGet();
- }
-
-}
View
65 old/server/src/main/java/org/acoustid/server/ApplicationContextListener.java
@@ -1,65 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.log4j.Logger;
-
-public class ApplicationContextListener implements ServletContextListener {
-
- private static final Logger logger = Logger.getLogger(ApplicationContextListener.class);
-
- public static final String INJECTOR_ATTRIBUTE_NAME = ApplicationContextListener.class.getName();
-
- @Override
- public void contextInitialized(ServletContextEvent event) {
- ServletContext servletContext = event.getServletContext();
- String configFileName = servletContext.getInitParameter("config");
- logger.info("Loading configuration from " + configFileName);
- XMLConfiguration config;
- try {
- config = new XMLConfiguration(configFileName);
- } catch (ConfigurationException ex) {
- throw new RuntimeException("Couldn't load configuration file", ex);
- }
- Injector injector = Guice.createInjector(new ServerModule(config));
- logger.debug("Setting injector");
- servletContext.setAttribute(INJECTOR_ATTRIBUTE_NAME, injector);
- }
-
- @Override
- public void contextDestroyed(ServletContextEvent event) {
- ServletContext servletContext = event.getServletContext();
- Injector injector = (Injector)servletContext.getAttribute(INJECTOR_ATTRIBUTE_NAME);
- if (injector == null) {
- logger.warn("Injector not found");
- return;
- }
- servletContext.removeAttribute(INJECTOR_ATTRIBUTE_NAME);
-
- ApplicationContext context = injector.getInstance(ApplicationContext.class);
- logger.debug("Closing application context " + context);
- context.close();
- }
-
-}
View
54 old/server/src/main/java/org/acoustid/server/Chromaprint.java
@@ -1,54 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-public class Chromaprint {
-
- private static final int FFT_FRAME_SIZE = 4096;
- private static final int SAMPLE_RATE = 11025;
- private static final int OVERLAP = 3;
- private static final double STEP_LENGTH = (double)FFT_FRAME_SIZE / SAMPLE_RATE / OVERLAP;
- private static final int WINDOW_SIZE = 16;
-
- public static final int FINGERPRINT_VERSION = 1;
-
- /**
- * Estimate the size of a Chromaprint fingerprint, based on the audio length
- * in seconds.
- *
- * @param length length of the audio stream in seconds
- * @return number of items the fingerprint should contain
- */
- public static int estimateFingerprintSize(int length) {
- return (int)(length / STEP_LENGTH) - WINDOW_SIZE;
- }
-
- /**
- * Check whether audio of the specified length could generate a fingerprint
- * of the specified size.
- *
- * @param length length of the audio stream in seconds
- * @param size number of items in the fingerprint
- * @return whether the fingerprint size is realistic
- */
- public static boolean isGoodFingerprintSize(int length, int size) {
- int expectedSize = estimateFingerprintSize(length);
- return Math.abs(size - expectedSize) < WINDOW_SIZE;
- }
-
-};
-
View
32 old/server/src/main/java/org/acoustid/server/Context.java
@@ -1,32 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-public interface Context {
-
- public Connection getConnection() throws SQLException;
-
- void incrementLookupCount();
-
- void incrementSubmissionCount();
-
- void incrementSuccessfulLookupCount();
-
-}
View
44 old/server/src/main/java/org/acoustid/server/DatabaseConnectionCustomizer.java
@@ -1,44 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.mchange.v2.c3p0.ConnectionCustomizer;
-import java.sql.Connection;
-import java.sql.Statement;
-
-public class DatabaseConnectionCustomizer implements ConnectionCustomizer {
-
- @Override
- public void onAcquire(Connection conn, String parentDataSourceIdentityToken) throws Exception {
- Statement stmt = conn.createStatement();
- stmt.execute("SET gin_fuzzy_search_limit TO 15");
- stmt.close();
- }
-
- @Override
- public void onDestroy(Connection conn, String string) throws Exception {
- }
-
- @Override
- public void onCheckOut(Connection conn, String string) throws Exception {
- }
-
- @Override
- public void onCheckIn(Connection conn, String string) throws Exception {
- }
-
-}
View
73 old/server/src/main/java/org/acoustid/server/DispatcherServlet.java
@@ -1,73 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.Injector;
-import org.acoustid.server.handler.HelloHandler;
-import org.acoustid.server.handler.RequestHandler;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.acoustid.server.handler.admin.StatusHandler;
-import org.acoustid.server.handler.admin.MemoryStatusHandler;
-import org.acoustid.server.handler.admin.SubmissionImportHandler;
-import org.acoustid.server.handler.ws.LookupHandler;
-import org.acoustid.server.handler.ws.SubmitHandler;
-import org.acoustid.server.handler.website.IndexHandler;
-import org.apache.log4j.Logger;
-
-public class DispatcherServlet extends HttpServlet {
-
- private static final Logger logger = Logger.getLogger(DispatcherServlet.class);
- private Map<String, Class<? extends RequestHandler>> handlers = new HashMap<String, Class<? extends RequestHandler>>();
-
- public DispatcherServlet() {
- handlers.put("/hello", HelloHandler.class);
- handlers.put("/index", IndexHandler.class);
- handlers.put("/ws/lookup", LookupHandler.class);
- handlers.put("/ws/submit", SubmitHandler.class);
- handlers.put("/admin/status", StatusHandler.class);
- handlers.put("/admin/memory-status", MemoryStatusHandler.class);
- handlers.put("/admin/import", SubmissionImportHandler.class);
- }
-
- public Injector getInjector(HttpServletRequest request) {
- return (Injector)request.getAttribute(RequestContextListener.INJECTOR_ATTRIBUTE_NAME);
- }
-
- @Override
- protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- Class<? extends RequestHandler> handlerClass = handlers.get(request.getRequestURI());
- if (handlerClass == null) {
- logger.warn("Handler for path " + request.getRequestURI() + " not found");
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
- }
- RequestHandler handler = getInjector(request).getInstance(handlerClass);
- try {
- handler.handle(request, response);
- }
- catch (Exception ex) {
- throw new ServletException("Internal server error", ex);
- }
- }
-
-}
View
71 old/server/src/main/java/org/acoustid/server/RequestContext.java
@@ -1,71 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.Inject;
-import java.sql.SQLException;
-import java.sql.Connection;
-import org.apache.log4j.Logger;
-
-public class RequestContext implements Context {
-
- private static final Logger logger = Logger.getLogger(RequestContext.class);
- private ApplicationContext context;
- private Connection connection = null;
-
- @Inject
- public RequestContext(ApplicationContext context) {
- this.context = context;
- }
-
- void close() {
- try {
- if (connection != null && !connection.isClosed()) {
- logger.debug("Closing database connection " + connection);
- connection.close();
- }
- }
- catch (SQLException ex) {
- logger.error("Failed to close a database connection", ex);
- }
- }
-
- @Override
- public Connection getConnection() throws SQLException {
- if (connection == null) {
- logger.debug("Requesting a new database connection");
- connection = context.getConnection();
- }
- return connection;
- }
-
- @Override
- public void incrementLookupCount() {
- context.incrementLookupCount();
- }
-
- @Override
- public void incrementSubmissionCount() {
- context.incrementSubmissionCount();
- }
-
- @Override
- public void incrementSuccessfulLookupCount() {
- context.incrementSuccessfulLookupCount();
- }
-
-}
View
52 old/server/src/main/java/org/acoustid/server/RequestContextListener.java
@@ -1,52 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.Injector;
-import javax.servlet.ServletRequestEvent;
-import javax.servlet.ServletRequestListener;
-import org.apache.log4j.Logger;
-
-public class RequestContextListener implements ServletRequestListener {
-
- private static final Logger logger = Logger.getLogger(RequestContextListener.class);
-
- public static final String INJECTOR_ATTRIBUTE_NAME = RequestContextListener.class.getName();
-
- @Override
- public void requestInitialized(ServletRequestEvent sre) {
- Injector parentInjector = (Injector)sre.getServletContext().getAttribute(ApplicationContextListener.INJECTOR_ATTRIBUTE_NAME);
- if (parentInjector == null) {
- logger.error("Server injector not found");
- return;
- }
- Injector injector = parentInjector.createChildInjector(parentInjector.getInstance(RequestModule.class));
- sre.getServletRequest().setAttribute(INJECTOR_ATTRIBUTE_NAME, injector);
- }
-
- @Override
- public void requestDestroyed(ServletRequestEvent sre) {
- Injector injector = (Injector)sre.getServletRequest().getAttribute(INJECTOR_ATTRIBUTE_NAME);
- if (injector == null) {
- logger.error("Injector not found");
- return;
- }
- injector.getInstance(RequestContext.class).close();
- sre.getServletRequest().removeAttribute(INJECTOR_ATTRIBUTE_NAME);
- }
-
-}
View
72 old/server/src/main/java/org/acoustid/server/RequestModule.java
@@ -1,72 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Provides;
-import java.sql.Connection;
-import java.sql.SQLException;
-import org.acoustid.data.AccountData;
-import org.acoustid.data.ApplicationData;
-import org.acoustid.data.FingerprintData;
-import org.acoustid.data.FormatData;
-import org.acoustid.data.SourceData;
-import org.acoustid.data.SubmissionData;
-import org.acoustid.data.TrackData;
-import org.acoustid.data.Transaction;
-import org.acoustid.data.sql.SQLAccountData;
-import org.acoustid.data.sql.SQLApplicationData;
-import org.acoustid.data.sql.SQLFingerprintData;
-import org.acoustid.data.sql.SQLFormatData;
-import org.acoustid.data.sql.SQLSourceData;
-import org.acoustid.data.sql.SQLSubmissionData;
-import org.acoustid.data.sql.SQLTrackData;
-import org.acoustid.data.sql.SQLTransaction;
-import org.acoustid.musicbrainz.data.MusicBrainzPUIDData;
-import org.acoustid.musicbrainz.data.sql.SQLMusicBrainzPUIDData;
-
-public class RequestModule extends AbstractModule {
-
- private RequestContext context;
-
- @Inject
- public RequestModule(RequestContext context) {
- this.context = context;
- }
-
- @Provides
- protected Connection provideConnection() throws SQLException {
- return context.getConnection();
- }
-
- @Override
- protected void configure() {
- bind(Context.class).toInstance(context);
- bind(RequestContext.class).toInstance(context);
- bind(AccountData.class).to(SQLAccountData.class);
- bind(ApplicationData.class).to(SQLApplicationData.class);
- bind(FingerprintData.class).to(SQLFingerprintData.class);
- bind(FormatData.class).to(SQLFormatData.class);
- bind(SourceData.class).to(SQLSourceData.class);
- bind(SubmissionData.class).to(SQLSubmissionData.class);
- bind(TrackData.class).to(SQLTrackData.class);
- bind(Transaction.class).to(SQLTransaction.class);
- bind(MusicBrainzPUIDData.class).to(SQLMusicBrainzPUIDData.class);
- }
-
-}
View
36 old/server/src/main/java/org/acoustid/server/ServerModule.java
@@ -1,36 +0,0 @@
-// Acoustid -- Audio fingerprint lookup server
-// Copyright (C) 2010 Lukas Lalinsky
-//
-// 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 <http://www.gnu.org/licenses/>.
-
-package org.acoustid.server;
-
-import com.google.inject.AbstractModule;
-import org.apache.commons.configuration.Configuration;
-
-public class ServerModule extends AbstractModule {
-
- private Configuration config;
-
- public ServerModule(Configuration config) {
- this.config = config;
- }
-
- @Override
- protected void configure() {
- bind(ApplicationContext.class);
- bind(Configuration.class).toInstance(config);
- }
-
-}
View
33 old/server/src/main/java/org/acoustid/server/handler/BadRequestException.java
@@ -1,33 +0,0 @@