Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/fulltextsearch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS.md4
-rw-r--r--CHANGELOG.md23
-rw-r--r--COPYING661
-rw-r--r--LICENSE661
-rw-r--r--Makefile174
-rw-r--r--README.md78
-rw-r--r--appinfo/app.php38
-rw-r--r--appinfo/autoload.php44
-rw-r--r--appinfo/database.xml29
-rw-r--r--appinfo/info.xml71
-rw-r--r--appinfo/register_command.php39
-rw-r--r--appinfo/routes.php85
-rw-r--r--composer.json5
-rw-r--r--composer.lock136
-rw-r--r--config/nextant_solrconfig.xml25
-rw-r--r--css/admin.css101
-rw-r--r--css/navigate.css121
-rw-r--r--img/app.svg43
-rw-r--r--img/bookmarks.svg18
-rw-r--r--img/check.pngbin18895 -> 0 bytes
-rw-r--r--img/fail.pngbin22720 -> 0 bytes
-rw-r--r--js/navigate.js842
-rw-r--r--js/settings.admin.js775
-rw-r--r--l10n/.tx/config9
-rw-r--r--l10n/ast.js62
-rw-r--r--l10n/ast.json60
-rw-r--r--l10n/ca.js92
-rw-r--r--l10n/ca.json90
-rw-r--r--l10n/cs.js92
-rw-r--r--l10n/cs.json90
-rw-r--r--l10n/de.js92
-rw-r--r--l10n/de.json90
-rw-r--r--l10n/de_DE.js92
-rw-r--r--l10n/de_DE.json90
-rw-r--r--l10n/el.js91
-rw-r--r--l10n/el.json89
-rw-r--r--l10n/en_GB.js92
-rw-r--r--l10n/en_GB.json90
-rw-r--r--l10n/es.js92
-rw-r--r--l10n/es.json90
-rw-r--r--l10n/es_AR.js89
-rw-r--r--l10n/es_AR.json87
-rw-r--r--l10n/es_MX.js92
-rw-r--r--l10n/es_MX.json90
-rw-r--r--l10n/fi.js42
-rw-r--r--l10n/fi.json40
-rw-r--r--l10n/fr.js92
-rw-r--r--l10n/fr.json90
-rw-r--r--l10n/hu.js56
-rw-r--r--l10n/hu.json54
-rw-r--r--l10n/is.js55
-rw-r--r--l10n/is.json53
-rw-r--r--l10n/it.js92
-rw-r--r--l10n/it.json90
-rw-r--r--l10n/ko.js52
-rw-r--r--l10n/ko.json50
-rw-r--r--l10n/lv.js31
-rw-r--r--l10n/lv.json29
-rw-r--r--l10n/mn.js46
-rw-r--r--l10n/mn.json44
-rw-r--r--l10n/nb.js92
-rw-r--r--l10n/nb.json90
-rw-r--r--l10n/nl.js92
-rw-r--r--l10n/nl.json90
-rw-r--r--l10n/pl.js92
-rw-r--r--l10n/pl.json90
-rw-r--r--l10n/pt_BR.js92
-rw-r--r--l10n/pt_BR.json90
-rw-r--r--l10n/ru.js92
-rw-r--r--l10n/ru.json90
-rw-r--r--l10n/sq.js92
-rw-r--r--l10n/sq.json90
-rw-r--r--l10n/sv.js92
-rw-r--r--l10n/sv.json90
-rw-r--r--l10n/tr.js92
-rw-r--r--l10n/tr.json90
-rw-r--r--l10n/zh_CN.js92
-rw-r--r--l10n/zh_CN.json90
-rw-r--r--lib/AppInfo/Application.php265
-rw-r--r--lib/Command/Background.php58
-rw-r--r--lib/Command/Check.php124
-rw-r--r--lib/Command/Clear.php86
-rw-r--r--lib/Command/Index.php454
-rw-r--r--lib/Command/Live.php175
-rw-r--r--lib/Command/Optimize.php92
-rw-r--r--lib/Command/Pick.php127
-rw-r--r--lib/Command/Test.php331
-rw-r--r--lib/Controller/SearchController.php305
-rw-r--r--lib/Controller/SettingsController.php475
-rw-r--r--lib/Cron/BackgroundIndex.php60
-rw-r--r--lib/Db/LiveQueue.php44
-rw-r--r--lib/Db/LiveQueueMapper.php75
-rw-r--r--lib/Events/BookmarksEvents.php85
-rw-r--r--lib/Events/FilesEvents.php228
-rw-r--r--lib/Hooks/BookmarksHooks.php79
-rw-r--r--lib/Hooks/FilesHooks.php128
-rw-r--r--lib/Items/ItemDocument.php630
-rw-r--r--lib/Items/ItemError.php81
-rw-r--r--lib/Items/ItemQueue.php145
-rw-r--r--lib/Migration/NextantUpgrade.php69
-rw-r--r--lib/Service/BackgroundService.php186
-rw-r--r--lib/Service/BookmarkService.php121
-rw-r--r--lib/Service/ConfigService.php302
-rw-r--r--lib/Service/FileService.php728
-rw-r--r--lib/Service/IndexService.php937
-rw-r--r--lib/Service/MiscService.php81
-rw-r--r--lib/Service/NewsService.php118
-rw-r--r--lib/Service/QueueService.php213
-rw-r--r--lib/Service/SolrAdminService.php1521
-rw-r--r--lib/Service/SolrService.php816
-rw-r--r--lib/Service/SolrToolsService.php539
-rw-r--r--lib/Service/SourceService.php62
-rw-r--r--lib/Service/TestService.php47
-rw-r--r--lib/admin.php36
-rw-r--r--lib/search.php36
-rw-r--r--phpunit.integration.xml7
-rw-r--r--phpunit.xml7
-rw-r--r--screenshots/admin.jpgbin364273 -> 0 bytes
-rw-r--r--screenshots/displayResult.jpgbin129175 -> 0 bytes
-rw-r--r--screenshots/displaySuggestions.jpgbin90067 -> 0 bytes
-rw-r--r--screenshots/noindex1.pngbin27819 -> 0 bytes
-rw-r--r--screenshots/noindex2.pngbin29205 -> 0 bytes
-rw-r--r--templates/settings.admin.php413
-rw-r--r--test.jpgbin15385 -> 0 bytes
-rw-r--r--test.pdfbin8655 -> 0 bytes
-rw-r--r--test.tifbin24676 -> 0 bytes
-rw-r--r--tests/bootstrap.php27
-rw-r--r--tests/integration/AppTest.php52
128 files changed, 0 insertions, 18653 deletions
diff --git a/AUTHORS.md b/AUTHORS.md
deleted file mode 100644
index ccde036..0000000
--- a/AUTHORS.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Authors
-
-* Maxence Lange: <maxence@pontapreta.net>
-
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index e2e86d4..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,23 +0,0 @@
-**1.0.3**
-- max_delay is now configurable.
-- possibility to not use the cron system from nextcloud.
-- new command nextant:background to be run in cron.
-- adding is: function during search (is:deleted)
-- bugfixes:
- * pdf from outside the current folder were not opened
- * commit were not triggered in some situation
- * external files were not indexed in some situation
- * missing entries from Live if sql is gone
-
-**1.0.1**
-- new tool: nextant:pick
-- new compat with Bookmarks 0.9.1
-- bugfixes:
- * remove files_external in admin if module is not enabled.
- * few glitch in command line tools.
- * cleaner exits on empty live queue.
- * error while indexing on encrypted external storage
-
-**1.0.0**
-First release.
-
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 2def0e8..0000000
--- a/COPYING
+++ /dev/null
@@ -1,661 +0,0 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 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 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.
-
- <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 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 <http://www.gnu.org/licenses/>.
-
-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
-<http://www.gnu.org/licenses/>. \ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index dbbe355..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,661 +0,0 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 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 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.
-
- <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 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 <http://www.gnu.org/licenses/>.
-
-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
-<http://www.gnu.org/licenses/>.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index ba128e4..0000000
--- a/Makefile
+++ /dev/null
@@ -1,174 +0,0 @@
-# This file is licensed under the Affero General Public License version 3 or
-# later. See the COPYING file.
-# @author Bernhard Posselt <dev@bernhard-posselt.com>
-# @copyright Bernhard Posselt 2016
-
-# Generic Makefile for building and packaging a Nextcloud app which uses npm and
-# Composer.
-#
-# Dependencies:
-# * make
-# * which
-# * curl: used if phpunit and composer are not installed to fetch them from the web
-# * tar: for building the archive
-# * npm: for building and testing everything JS
-#
-# If no composer.json is in the app root directory, the Composer step
-# will be skipped. The same goes for the package.json which can be located in
-# the app root or the js/ directory.
-#
-# The npm command by launches the npm build script:
-#
-# npm run build
-#
-# The npm test command launches the npm test script:
-#
-# npm run test
-#
-# The idea behind this is to be completely testing and build tool agnostic. All
-# build tools and additional package managers should be installed locally in
-# your project, since this won't pollute people's global namespace.
-#
-# The following npm scripts in your package.json install and update the bower
-# and npm dependencies and use gulp as build system (notice how everything is
-# run from the node_modules folder):
-#
-# "scripts": {
-# "test": "node node_modules/gulp-cli/bin/gulp.js karma",
-# "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update",
-# "build": "node node_modules/gulp-cli/bin/gulp.js"
-# },
-
-app_name=$(notdir $(CURDIR))
-build_tools_directory=$(CURDIR)/build/tools
-source_build_directory=$(CURDIR)/build/artifacts/source
-source_package_name=$(source_build_directory)/$(app_name)
-appstore_build_directory=$(CURDIR)/build/artifacts/appstore
-appstore_package_name=$(appstore_build_directory)/$(app_name)
-npm=$(shell which npm 2> /dev/null)
-composer=$(shell which composer 2> /dev/null)
-
-all: build
-
-# Fetches the PHP and JS dependencies and compiles the JS. If no composer.json
-# is present, the composer step is skipped, if no package.json or js/package.json
-# is present, the npm step is skipped
-.PHONY: build
-build:
-ifneq (,$(wildcard $(CURDIR)/composer.json))
- make composer
-endif
-ifneq (,$(wildcard $(CURDIR)/package.json))
- make npm
-endif
-ifneq (,$(wildcard $(CURDIR)/js/package.json))
- make npm
-endif
-
-# Installs and updates the composer dependencies. If composer is not installed
-# a copy is fetched from the web
-.PHONY: composer
-composer:
-ifeq (, $(composer))
- @echo "No composer command available, downloading a copy from the web"
- mkdir -p $(build_tools_directory)
- curl -sS https://getcomposer.org/installer | php
- mv composer.phar $(build_tools_directory)
- php $(build_tools_directory)/composer.phar install --prefer-dist
- php $(build_tools_directory)/composer.phar update --prefer-dist
-else
- composer install --prefer-dist
- composer update --prefer-dist
-endif
-
-# Installs npm dependencies
-.PHONY: npm
-npm:
-ifeq (,$(wildcard $(CURDIR)/package.json))
- cd js && $(npm) run build
-else
- npm run build
-endif
-
-# Removes the appstore build
-.PHONY: clean
-clean:
- rm -rf ./build
-
-# Same as clean but also removes dependencies installed by composer, bower and
-# npm
-.PHONY: distclean
-distclean: clean
- rm -rf vendor
- rm -rf node_modules
- rm -rf js/vendor
- rm -rf js/node_modules
-
-# Builds the source and appstore package
-.PHONY: dist
-dist:
- make source
- make appstore
-
-# Builds the source package
-.PHONY: source
-source:
- rm -rf $(source_build_directory)
- mkdir -p $(source_build_directory)
- tar cvzf $(source_package_name).tar.gz ../$(app_name) \
- --exclude-vcs \
- --exclude="../$(app_name)/build" \
- --exclude="../$(app_name)/js/node_modules" \
- --exclude="../$(app_name)/node_modules" \
- --exclude="../$(app_name)/*.log" \
- --exclude="../$(app_name)/js/*.log" \
-
-# Builds the source package for the app store, ignores php and js tests
-.PHONY: appstore
-appstore:
- rm -rf $(appstore_build_directory)
- mkdir -p $(appstore_build_directory)
- tar cvzf $(appstore_package_name).tar.gz ../$(app_name) \
- --exclude-vcs \
- --exclude="../$(app_name)/build" \
- --exclude="../$(app_name)/tests" \
- --exclude="../$(app_name)/Makefile" \
- --exclude="../$(app_name)/*.log" \
- --exclude="../$(app_name)/phpunit*xml" \
- --exclude="../$(app_name)/composer.*" \
- --exclude="../$(app_name)/js/node_modules" \
- --exclude="../$(app_name)/js/tests" \
- --exclude="../$(app_name)/js/test" \
- --exclude="../$(app_name)/js/*.log" \
- --exclude="../$(app_name)/js/package.json" \
- --exclude="../$(app_name)/js/bower.json" \
- --exclude="../$(app_name)/js/karma.*" \
- --exclude="../$(app_name)/js/protractor.*" \
- --exclude="../$(app_name)/package.json" \
- --exclude="../$(app_name)/bower.json" \
- --exclude="../$(app_name)/karma.*" \
- --exclude="../$(app_name)/protractor\.*" \
- --exclude="../$(app_name)/.*" \
- --exclude="../$(app_name)/js/.*" \
-
-# Command for running JS and PHP tests. Works for package.json files in the js/
-# and root directory. If phpunit is not installed systemwide, a copy is fetched
-# from the internet
-.PHONY: test
-test:
-ifneq (,$(wildcard $(CURDIR)/js/package.json))
- cd js && $(npm) run test
-endif
-ifneq (,$(wildcard $(CURDIR)/package.json))
- $(npm) run test
-endif
-ifeq (, $(shell which phpunit 2> /dev/null))
- @echo "No phpunit command available, downloading a copy from the web"
- mkdir -p $(build_tools_directory)
- curl -sSL https://phar.phpunit.de/phpunit.phar -o $(build_tools_directory)/phpunit.phar
- php $(build_tools_directory)/phpunit.phar -c phpunit.xml
- php $(build_tools_directory)/phpunit.phar -c phpunit.integration.xml
-else
- phpunit -c phpunit.xml --coverage-clover build/php-unit.clover
- phpunit -c phpunit.integration.xml --coverage-clover build/php-unit.clover
-endif \ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index fde20b0..0000000
--- a/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-# Nextant
-
-> Navigate through your cloud using Solr
-
-**Nextant** performs fast and concise _Full-Text Search_ within:
-
-- your own files,
-- shared files,
-- federated cloud shares,
-- external storage,
-- server-side encrypted storage,
-- your bookmarks.
-
-
-### Recognized file formats:
-- plain text,
-- RTF,
-- PDF,
-- JPEG & TIFF (requires Tesseract)
-- HTML,
-- LibreOffice & OpenOffice,
-- Microsoft Office,
-
-
-
-## Installation
-
-- [You first need to install a Solr servlet](https://github.com/nextcloud/nextant/wiki)
-- Download the .tar.gz from the [appstore](https://apps.nextcloud.com/apps/nextant), unzip and place this app in **nextcloud/apps/** (or clone from GitHub and build the app yourself)
-- Enable the app in the app list,
-- Edit the settings on the administration page.
-- Enable Nextant using the **./occ app:enable nextant** command
-- Test your Solr installation and save the configuration to Nextant using the **./occ nextant:test http://127.0.0.1:8983/solr/ nextant --save** command
-- Extract the current files from your cloud using the **./occ nextant:index** command
-- Have a look to this [explanation on how Nextant works](https://github.com/nextcloud/nextant/wiki/Extracting,-Live-Update)
-- _(Optional)_ [Installing Tesseract](https://github.com/tesseract-ocr/tesseract/wiki) ([Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) Engine) will allow Nextant to extract text from image file and PDFs without a text layer.
-
-## Scripted installation (Ubuntu)
-The developers of the [Nextcloud VM](https://github.com/nextcloud/vm) has made a [script](https://raw.githubusercontent.com/nextcloud/vm/master/apps/nextant.sh) that you can use.
-Please note that you must change the variables in the script to suit your config before you run it.
-
-To get the script, please type the folloing command: `wget https://github.com/nextcloud/vm/blob/master/apps/nextant.sh` and then run the script with `sudo bash nextant.sh`.
-
-Please report any issues regarding the script in the [Nextcloud VM repo](https://github.com/nextcloud/vm/issues).
-
-## Building the app
-
-The app can be built by using the provided Makefile by running:
-
- make
-
-This requires the following things to be present:
-* make
-* which
-* tar: For building the archive
-* curl: Used if phpunit and composer are not installed to fetch them from the web
-* npm: For building and testing everything JS, only required if a package.json is placed inside the **js/** folder
-
-The make command will install or update Composer dependencies if a composer.json is present and also **npm run build** if a package.json is present in the **js/** folder. The npm **build** script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.:
-
-**package.json**:
-```json
-"scripts": {
- "test": "node node_modules/gulp-cli/bin/gulp.js karma",
- "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update",
- "build": "node node_modules/gulp-cli/bin/gulp.js"
-}
-```
-
-
-
-
-
diff --git a/appinfo/app.php b/appinfo/app.php
deleted file mode 100644
index 0ee569a..0000000
--- a/appinfo/app.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\AppInfo;
-
-require_once __DIR__ . '/autoload.php';
-
-$app = new \OCA\Nextant\AppInfo\Application();
-
-// $app->registerNavigation();
-$app->registerFilesHooks();
-$app->registerSettingsAdmin();
-$app->registerSearchProvider();
-
-
diff --git a/appinfo/autoload.php b/appinfo/autoload.php
deleted file mode 100644
index e1e330a..0000000
--- a/appinfo/autoload.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\AppInfo;
-
-/**
- * Additional autoloader registration, e.g.
- * registering composer autoloaders
- */
-$composerInstalled = false;
-// $solariumInstalled = false;
-$composerDir = __DIR__ . '/../vendor/';
-
-if (is_dir($composerDir) && file_exists($composerDir . 'autoload.php')) {
- require_once $composerDir . 'autoload.php';
- $composerInstalled = true;
-}
-
-//if (! $composerInstalled) {
-// $app->getContainer ()->query ( 'MiscService' )->log ( 'You\'ll need to build this apps. Please check documentation', 2 );
-//} \ No newline at end of file
diff --git a/appinfo/database.xml b/appinfo/database.xml
deleted file mode 100644
index 0adbc94..0000000
--- a/appinfo/database.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<database>
- <name>*dbname*</name>
- <create>true</create>
- <overwrite>false</overwrite>
- <charset>utf8</charset>
-
- <table>
- <name>*dbprefix*nextant_live_queue</name>
- <declaration>
- <field>
- <name>id</name>
- <type>integer</type>
- <notnull>true</notnull>
- <autoincrement>true</autoincrement>
- <unsigned>true</unsigned>
- <primary>true</primary>
- <length>8</length>
- </field>
- <field>
- <name>item</name>
- <type>text</type>
- <notnull>true</notnull>
- <length>512</length>
- </field>
- </declaration>
- </table>
-
-</database> \ No newline at end of file
diff --git a/appinfo/info.xml b/appinfo/info.xml
deleted file mode 100644
index 304c6ed..0000000
--- a/appinfo/info.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
- <id>nextant</id>
- <name>Nextant</name>
- <summary>Navigate through your cloud using Solr</summary>
- <description>
- Navigate through your cloud using Solr
-
-
-**Nextant** performs fast and concise _Full-Text Search_ within:
-
-- your own files,
-- shared files,
-- external storage,
-- bookmarks
-
-
-### Recognized file format:
-- plain text,
-- rtf,
-- pdf,
-- html,
-- openoffice,
-- microsoft office,
-- image JPEG and TIFF (will requiert Tesseract installed)
-- pdf with no text layer (will also requiert Tesseract) _[work in progress]_
-
-
-
-## Installation
-
-- [You first need to install a Solr servlet](https://github.com/nextcloud/nextant/wiki)
-- Download the .zip from the appstore, unzip and place this app in **nextcloud/apps/** (or clone the github and build the app yourself)
-- Enable the app in the app list,
-- Edit the settings in the administration page.
-- Extract the current files from your cloud using the **./occ nextant:index** command
-- Have a look to this [explanation on how Nextant works](https://github.com/nextcloud/nextant/wiki/Extracting,-Live-Update)
-- _(Optional)_ [Installing Tesseract](https://github.com/tesseract-ocr/tesseract/wiki) ([Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) Engine) will allow Nextant to extract text from images and pdfs without text layer.
-
-
- </description>
- <version>1.0.8</version>
- <licence>agpl</licence>
- <author>Maxence Lange</author>
- <types>
- <filesystem />
- </types>
- <documentation>
- <admin>https://github.com/nextcloud/nextant/wiki</admin>
- </documentation>
- <category>tools</category>
- <category>files</category>
- <website>https://github.com/nextcloud/nextant/wiki</website>
- <bugs>https://github.com/nextcloud/nextant/issues</bugs>
- <repository>https://github.com/nextcloud/nextant/</repository>
- <screenshot>https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/displayResult.jpg</screenshot>
- <screenshot>https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/admin.jpg</screenshot>
- <dependencies>
- <owncloud min-version="9.0" max-version="9.2" />
- <nextcloud min-version="9" max-version="12" />
- </dependencies>
- <background-jobs>
- <job>OCA\Nextant\Cron\BackgroundIndex</job>
- </background-jobs>
- <repair-steps>
- <post-migration>
- <step>OCA\Nextant\Migration\NextantUpgrade</step>
- </post-migration>
- </repair-steps>
-</info> \ No newline at end of file
diff --git a/appinfo/register_command.php b/appinfo/register_command.php
deleted file mode 100644
index 3037024..0000000
--- a/appinfo/register_command.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-$app = new \OCA\Nextant\AppInfo\Application();
-$c = $app->getContainer();
-
-$application->add(new OCA\Nextant\Command\Check($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('SettingsController')));
-$application->add(new OCA\Nextant\Command\Test($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('IndexService'), $c->query('SettingsController')));
-$application->add(new OCA\Nextant\Command\Clear($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrAdminService')));
-$application->add(new OCA\Nextant\Command\Index(OC::$server->getUserManager(), $c->query('RootFolder'), $c->query('IndexService'), $c->query('QueueService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('MiscService')));
-$application->add(new OCA\Nextant\Command\Optimize($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService')));
-$application->add(new OCA\Nextant\Command\Pick($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService')));
-$application->add(new OCA\Nextant\Command\Live($c->query('QueueService'), $c->query('IndexService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('MiscService')));
-$application->add(new OCA\Nextant\Command\Background($c->query('BackgroundService')));
-
-
diff --git a/appinfo/routes.php b/appinfo/routes.php
deleted file mode 100644
index 78064a3..0000000
--- a/appinfo/routes.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-return [
- 'routes' => [
- [
- 'name' => 'settings#setSettings',
- 'url' => 'ajax/settings/admin.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'settings#setOptionsFiles',
- 'url' => 'ajax/settings/option_files.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'settings#setOptionsFilesFilters',
- 'url' => 'ajax/settings/option_files_filters.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'settings#setOptionsBookmarks',
- 'url' => 'ajax/settings/option_bookmarks.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'settings#setOptionsStatus',
- 'url' => 'ajax/settings/option_status.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'settings#updateSubOptions',
- 'url' => 'ajax/settings/updateSubOptions.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'search#searchRequest',
- 'url' => 'ajax/search.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'search#suggestRequest',
- 'url' => 'ajax/suggest.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'search#searchOptions',
- 'url' => 'ajax/search_options.php',
- 'verb' => 'POST'
- ],
-
- [
- 'name' => 'search#searchRequestPublic',
- 'url' => 'ajax/search_public.php',
- 'verb' => 'POST'
- ],
- [
- 'name' => 'search#suggestRequestPublic',
- 'url' => 'ajax/suggest_public.php',
- 'verb' => 'POST'
- ]
- ]
-];
diff --git a/composer.json b/composer.json
deleted file mode 100644
index a14de1d..0000000
--- a/composer.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "require": {
- "solarium/solarium": "^3.7"
- }
-}
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index 032ea97..0000000
--- a/composer.lock
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
- "This file is @generated automatically"
- ],
- "content-hash": "bf7709dd02147d6820929f1d232796af",
- "packages": [
- {
- "name": "solarium/solarium",
- "version": "3.8.1",
- "source": {
- "type": "git",
- "url": "https://github.com/solariumphp/solarium.git",
- "reference": "c353babec89fdbe8c64054bfec8e77bcb5da6705"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/solariumphp/solarium/zipball/c353babec89fdbe8c64054bfec8e77bcb5da6705",
- "reference": "c353babec89fdbe8c64054bfec8e77bcb5da6705",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2",
- "symfony/event-dispatcher": "~2.3|~3.0"
- },
- "require-dev": {
- "guzzlehttp/guzzle": "^3.8 || ^6.2",
- "phpunit/phpunit": "~3.7",
- "satooshi/php-coveralls": "~1.0",
- "squizlabs/php_codesniffer": "~1.4",
- "zendframework/zendframework1": "~1.12"
- },
- "suggest": {
- "minimalcode/search": "Query builder compatible with Solarium, allows simplified solr-query handling"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "3.3.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Solarium\\": "library/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "See GitHub contributors",
- "homepage": "https://github.com/basdenooijer/solarium/contributors"
- }
- ],
- "description": "PHP Solr client",
- "homepage": "http://www.solarium-project.org",
- "keywords": [
- "php",
- "search",
- "solr"
- ],
- "time": "2017-02-02T13:32:22+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v3.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9137eb3a3328e413212826d63eeeb0217836e2b6",
- "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "~2.8|~3.0",
- "symfony/dependency-injection": "~2.8|~3.0",
- "symfony/expression-language": "~2.8|~3.0",
- "symfony/stopwatch": "~2.8|~3.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony EventDispatcher Component",
- "homepage": "https://symfony.com",
- "time": "2017-01-02T20:32:22+00:00"
- }
- ],
- "packages-dev": [],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": [],
- "platform-dev": []
-}
diff --git a/config/nextant_solrconfig.xml b/config/nextant_solrconfig.xml
deleted file mode 100644
index 8864910..0000000
--- a/config/nextant_solrconfig.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-<searchComponent class="solr.SpellCheckComponent" name="suggest">
- <lst name="spellchecker">
- <str name="name">suggest</str>
- <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
- <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookupFactory</str>
- <str name="field">text</str>
- <str name="buildOnCommit">true</str>
- </lst>
-</searchComponent>
-
-<requestHandler class="org.apache.solr.handler.component.SearchHandler"
- name="/suggest">
- <lst name="defaults">
- <str name="spellcheck">true</str>
- <str name="spellcheck.dictionary">suggest</str>
- <str name="spellcheck.count">5</str>
- </lst>
- <arr name="components">
- <str>suggest</str>
- </arr>
-</requestHandler>
-
- \ No newline at end of file
diff --git a/css/admin.css b/css/admin.css
deleted file mode 100644
index 9c3b029..0000000
--- a/css/admin.css
+++ /dev/null
@@ -1,101 +0,0 @@
-#nextant_saving_settings, #nextant_saving_files,
- #nextant_saving_files_filters, #nextant_saving_bookmarks,
- #nextant_saving_check, #nextant_saving_status {
- font-weight: bolder;
- font-size: 12px;
- margin-left: 30px;
- font-style: italic;
- filter: alpha(opacity = 50);
- opacity: 0.5;
-}
-
-#nextant-display {
- width: 450px;
- height: 250px;
- position: relative;
- border-radius: 20px;
- padding: 10px;
-}
-
-#nextant-filters {
- width: 450px;
- height: 250px;
- border-radius: 20px;
- position: absolute;
- margin-top: 20px;
- padding: 10px;
- top: 300px;
-}
-
-DIV.solr_filters_item {
- float: left;
- width: 200px;
- font-style: italic;
- font-size: 12px;
-}
-
-DIV.solr_filters_item_large {
- float: left;
- width: 400px;
- font-style: italic;
- font-size: 12px;
-}
-
-DIV.solr_filters_title {
- font-weight: bold;
- font-size: 13px;
-}
-
-DIV.nextant-box {
- border: solid 1px #f3f3f3;
- box-shadow: 2px 2px 5px #0000004D;
- background: #f8f8f8;
-}
-
-DIV.nextant-display-line {
- margin: 0 auto;
- position: absolute;
-}
-
-IMG.nextant_display_icon {
- position: absolute;
- width: 25px;
- height: 25px;
-}
-
-DIV.nextant_display_text {
- top: 3px;
- left: 40px;
- position: absolute;
- font-style: italic;
-}
-
-TD.nextant_admin_left {
- width: 300px;
- text-align: right;
- font-weight: bold;
- padding-right: 15px;
-}
-
-TR.nextant_admin_head, TR.nextant_admin_head:hover {
- margin-top: 12px;
- width: 600px;
- background: #ddd;
-}
-
-TD.nextant_admin_head {
- font-weight: bold;
- text-align: right;
- padding: 4px;
- padding-right: 30px;
- font-style: italic;
-}
-
-#solr_switch_filters, #solr_switch_filters:hover {
- cursor: pointer;
- font-size: 12px;
-}
-
-#solr_switch_filters:hover {
- text-decoration: underline;
-} \ No newline at end of file
diff --git a/css/navigate.css b/css/navigate.css
deleted file mode 100644
index ebec24b..0000000
--- a/css/navigate.css
+++ /dev/null
@@ -1,121 +0,0 @@
-@CHARSET "ISO-8859-1";
-
-.searchbox input[type="search"]:valid, .searchbox input[type="search"]:focus
- {
- width: 300px;
- background: rgba(255,255,255,0.2);
- border-radius: 15px;
-}
-
-.searchbox_querying {
- border-color: rgba(255,255,255,1) !important;
-}
-
-#nextantList {
- width: 100%;
-}
-
-DIV.nextant_entry {
- height: 50px;
- width: 100%;
- background: #f00;
- margin: 2px;
-}
-
-DIV.nextant_details {
- width: 22px;
- background-size: 22px;
- display: inline-block;
- height: 22px;
- margin-left: -8px;
- margin-top: -8px;
- cursor: pointer;
- float: left;
- position: absolute;
- z-index: 4;
- opacity: 0.5;
- filter: alpha(opacity = 50)
-}
-
-A.nextant_file {
- cursor: default !important;
- position: relative;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- display: block;
- height: 50px;
- line-height: 50px;
- padding: 0;
- left: 50px;
- margin-right: 50px;
-}
-
-SPAN.nextant_line {
- position: absolute;
- padding: 0;
- overflow: hidden;
- padding-right: 20px;
- max-width: 800px;
- text-overflow: ellipsis;
-}
-
-SPAN.nextant_line1 {
- top: -15px;
- font-style: italic;
- font-weight: bold;
-}
-
-SPAN.nextant_line2 {
- top: 0px;
- font-style: italic;
- font-size: 11px;
- left: 10px;
- color: #9e9e9e;
-}
-
-SPAN.nextant_line3 {
- font-style: italic;
- font-size: 11px;
- color: #9e9e9e;
- left: 10px;
- top: 15px;
- padding-right: 20px;
-}
-
-SPAN.nextant_hl {
- color: #000;
- font-weight: bold;
-}
-
-#nextant_suggestion {
- z-index: 2000;
- margin-top: 18px;
- border: solid 1px rgba(0,0,0,0.3);
- border-radius: 4px;
- background: rgba(254,254,254,0.8);
- width: 350px;
- box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
-}
-
-DIV.nextant_suggestion_item {
- border-top: dashed 1px rgba(0,0,0,0.2);
- padding: 4px;
- padding-left: 12px;
- padding-right: 12px;
-}
-
-DIV.nextant_suggestion_item, nextant_suggestion_item:hover {
- -webkit-transition: background-color 200ms linear;
- -moz-transition: background-color 200ms linear;
- -o-transition: background-color 200ms linear;
- -ms-transition: background-color 200ms linear;
- transition: background-color 200ms linear;
-}
-
-nextant_suggestion_item:hover {
- background: #eee;;
-}
-
-DIV.nextant_suggestion_firstitem {
- border-top: 0px;
-}
diff --git a/img/app.svg b/img/app.svg
deleted file mode 100644
index 1b09540..0000000
--- a/img/app.svg
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="svg2" xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 758 758"
- enable-background="new 0 0 758 758" xml:space="preserve">
-<g id="layer3">
- <path id="path8018" fill="#FFFFFF" stroke-width="0.7087" d="M60.6,474.5c182,167.6,442.8,178.9,637.3-1.9
- l-43.2-43.3c-4.9,6.1-10,10.4-15.2,14.1L406.3,192.5l23.1-37.1l-43.1-35.1l-49.9,23.4l17.4,50.2L119.1,445.2
- c-5.3-4.6-10.5-9.4-15.4-14.8L60.6,474.5z"/>
-</g>
-<g id="layer7">
- <path id="path9961" fill="#FFFFFF" stroke-width="0.7087" d="M230.7,361.8c18.7,14.7,40.6,27.4,67.9,36.8
- l-33.8,125.8c-48.4-13.9-89.3-36.6-126.4-63.8L230.7,361.8z"/>
- <path id="path9963" fill="#FFFFFF" stroke-width="0.7087" d="M288.8,531.1c54.3,12.7,113.9,15.6,179.7,0
- L434,403.2c-37.4,10.3-74.7,10.3-111.5,2.3L288.8,531.1z"/>
- <path id="path9965" fill="#FFFFFF" stroke-width="0.7087" d="M492.1,525c36.5-11.5,71.7-24.1,128.3-66.3
- l-96.1-103.1c-19.6,17.4-41.9,30.6-66.9,39.9L492.1,525z"/>
- <path id="path9967" fill="#FFFFFF" stroke-width="0.7087" d="M415.7,239.4l91.8,98.1c-16.9,14.3-35.9,25-56.3,34
- L415.7,239.4z"/>
- <path id="path9969" fill="#FFFFFF" stroke-width="0.7087" d="M247.5,343.7l92.4-98.7l-35.1,130
- C281.1,366.6,262.9,355.3,247.5,343.7z"/>
- <path id="path9971" fill="#FFFFFF" stroke-width="0.7087" d="M328.9,381.7c29.4,6,60.9,8,98.6-2.2l-23-85.6
- l-42.3-35.7L328.9,381.7z"/>
- <path id="path9973" fill="#FFFFFF" stroke-width="0.8591" stroke-linejoin="round" d="M404.4,170.1
- c0,12.2-10.3,22.2-23,22.2c-12.7,0-23-9.9-23-22.2c0-12.2,10.3-22.2,23-22.2C394.1,148,404.4,157.9,404.4,170.1z"/>
-</g>
-<g id="layer4">
- <path id="rect13853" fill="#FFFFFF" stroke-width="1" stroke-linejoin="round" d="M321.3,602.9h117.2v41.3H321.3
- V602.9z"/>
- <path id="rect13855" fill="#FFFFFF" stroke-linejoin="round" d="M358.4,212.9h49.2v401.4h-49.2V212.9z"/>
- <path id="path13857" fill="#FFFFFF" stroke-width="45.1194" stroke-linejoin="round" d="M428.8,170
- c0,26.1-21.1,47.2-47.1,47.2s-47.1-21.2-47.1-47.2s21.1-47.2,47.1-47.2S428.8,144,428.8,170z"/>
-</g>
-<g id="layer5">
- <path id="rect15802" fill="#FFFFFF" stroke-width="1" stroke-linejoin="round" d="M220.5,239.2l33-13.1
- l46.8,118.4l-33,13.1L220.5,239.2z"/>
-</g>
-<g id="layer6">
- <path id="rect16773" fill="#FFFFFF" stroke-linejoin="round" d="M439.1,255.1h155.1c5.1,0,9.1,4.1,9.1,9.1v35.4
- c0,5.1-4.1,9.1-9.1,9.1H439.1c-5.1,0-9.1-4.1-9.1-9.1v-35.4C429.9,259.2,434,255.1,439.1,255.1z"/>
-</g>
-</svg>
diff --git a/img/bookmarks.svg b/img/bookmarks.svg
deleted file mode 100644
index 89a2cf2..0000000
--- a/img/bookmarks.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<path d="M429,42.295H83c-5.523,0-10,4.477-10,10v415c0,0.833,0.113,1.637,0.305,2.41L256.5,326.295l182.339,142.74
- c0.1-0.566,0.161-1.146,0.161-1.74v-415C439,46.772,434.523,42.295,429,42.295z M108.5,344.795c0,4.143-3.358,7.5-7.5,7.5
- s-7.5-3.357-7.5-7.5v-242c0-4.142,3.358-7.5,7.5-7.5s7.5,3.358,7.5,7.5V344.795z M341.397,147.122
- c-12.481,10.265-24.852,20.657-37.307,30.953c-0.341,0.3-0.694,0.609-0.934,1.002c3.52,15.313,7.462,30.543,11.138,45.826
- c2.793,7.663-3.739,16.701-11.943,16.099c-2.834-0.035-5.302-1.589-7.563-3.13c-12.209-7.712-24.426-15.42-36.638-23.125
- c-1.041-0.636-2.021-1.434-3.193-1.816c-13.847,8.341-27.486,17.056-41.298,25.465c-3.799,2.268-8.843,2.237-12.571-0.158
- c-3.929-2.341-6.351-7.169-5.421-11.723c3.979-16.338,8.457-32.591,12.254-48.961c-11.218-9.655-22.612-19.118-33.883-28.712
- c-2.553-2.067-5.321-4.233-6.428-7.458c-2.707-6.474,1.577-14.915,8.672-15.925c16.886-1.427,33.888-2.028,50.735-3.575
- c5.827-13.924,11.429-27.953,17.187-41.912c1.071-2.784,2.31-5.684,4.755-7.55c5.413-4.631,14.907-3.081,17.98,3.532
- c6.224,15.417,12.336,30.883,18.521,46.32c0.104,0.524,0.598,0.697,1.08,0.697c15.479,1.061,30.943,2.322,46.418,3.424
- c4.443,0.092,8.848,2.538,10.854,6.571C346.294,137.493,345.463,143.779,341.397,147.122z M418.5,344.795c0,4.143-3.357,7.5-7.5,7.5
- s-7.5-3.357-7.5-7.5v-242c0-4.142,3.357-7.5,7.5-7.5s7.5,3.358,7.5,7.5V344.795z"/>
-</svg>
diff --git a/img/check.png b/img/check.png
deleted file mode 100644
index d31c204..0000000
--- a/img/check.png
+++ /dev/null
Binary files differ
diff --git a/img/fail.png b/img/fail.png
deleted file mode 100644
index b93f167..0000000
--- a/img/fail.png
+++ /dev/null
Binary files differ
diff --git a/js/navigate.js b/js/navigate.js
deleted file mode 100644
index ce1fe2d..0000000
--- a/js/navigate.js
+++ /dev/null
@@ -1,842 +0,0 @@
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-(function() {
-
- /**
- * @constructs Nextant
- */
- var Nextant = function() {
- this.initialize();
- };
-
- Nextant.prototype = {
-
- fileList : null,
- requesting : false,
- currFiles : null,
- oldQuery : '',
- searchResult : null,
- locked : false,
- config : null,
-
- nextant_sharelink : true,
- searchboxFocus : false,
-
- timerQuery : null,
- suggestNoSpam : false,
-
- /**
- * Initialize the file search
- */
- initialize : function() {
-
- var self = this;
-
- //
- // fileAppLoaded - detect if Files App is loaded
- this.fileAppLoaded = function() {
- return !!OCA.Files && !!OCA.Files.App;
- };
-
- //
- // initFileList - init fileList
- this.initFileList = function() {
-
- var query = $('#searchbox').val();
- if (self.fileList != null) {
-
- if (self.oldQuery == '')
- self.currFiles = self.fileList.files;
-
- self.oldQuery = $('#searchbox').val();
- return;
- }
-
- if (self.nextant_sharelink)
- self.fileList = OCA.Sharing.PublicApp.fileList;
-
- else {
- _.each(OC.Plugins.getPlugins('OCA.Search'),
- function(plugin) {
- if (plugin instanceof OCA.Search.Files)
- self.fileList = plugin.fileList;
- });
- }
-
- /*
- * Haven't found a way to include (or remove) a fileAction only
- * in a specific place (only in search result)
- */
- if (self.nextant_sharelink || OCA.Files.App.fileList != null) // #82
- OCA.Files.fileActions.registerAction({
- name : 'nextant_gotofolder',
- displayName : t('nextant', 'Go to folder'),
- mime : 'all',
- permissions : OC.PERMISSION_READ,
- type : OCA.Files.FileActions.TYPE_DROPDOWN,
- icon : function() {
- return OC.imagePath('core', 'filetypes/folder');
- },
- actionHandler : function(filename, context) {
- self.onGoToFolder(filename, context);
- }
- });
-
- if (self.config == null)
- $.post(
- OC
- .filePath('nextant', 'ajax',
- 'search_options.php'), {},
- self.getOptionsResult);
-
- };
-
- //
- // getOptionsResult - get config from server
- this.getOptionsResult = function(result) {
- if (self.config != null)
- return;
-
- self.config = result;
- }
-
- // initShareLink - init Share Link (only if needed)
- this.initShareLink = function() {
- if (!self.nextant_sharelink)
- return;
-
- $searchbox = '<form class="searchbox" action="#" method="post" role="search" novalidate="" style="padding-right: 300px;" o>';
- $searchbox += ' <label for="searchbox" class="hidden-visually">Search</label>';
- $searchbox += ' <input id="searchbox" name="query" value="" required="" autocomplete="off" tabindex="5" type="search">';
- $searchbox += '</form>';
-
- $('#logo-claim').after($searchbox);
- setTimeout(function() {
- $('#searchbox').fadeIn(500);
- }, 1000);
-
- $('#searchbox').on('input', function(e) {
- self.sendSuggestRequest();
- self.delayedSearchRequest();
- });
-
- $('DIV.crumb.svg.last').live('click', function() {
- $('#searchbox').val('');
- self.sendSearchRequest();
- });
-
- $('DIV.crumb.svg.ui-droppable').live('click', function() {
- $('#searchbox').val('');
- self.sendSearchRequest();
- });
-
- $("form.searchbox").submit(function() {
- return false;
- });
-
- $('#searchbox').focusout(function() {
- // nextantCurrentFocus = false;
- // nextant_share_link.suggestShow();
- });
-
- $('#searchbox').focusin(function() {
- // nextantCurrentFocus = true;
- // nextant_share_link.suggestShow();
- });
-
- };
-
- //
- // sendSearchRequest -
- this.sendSearchRequest = function() {
-
- var query = $('#searchbox').val();
-
- if (query == '') {
- if (self.searchResult != null) {
- self.searchResult = null;
- self.fileList.setSort('name', 'asc', false, false);
- self.fileList.setFiles(self.currFiles);
- }
- return;
- }
-
- if (self.requesting)
- return;
-
- self.requesting = true;
- $('#searchbox').addClass('searchbox_querying');
-
- var data = {
- query : query,
- current_dir : self.get('dir'),
- key : self.getShareLinkKey()
- }
-
- self.postSearchRequest(data);
- };
-
- //
- // sendSuggestRequest -
- this.sendSuggestRequest = function() {
- var query = $('#searchbox').val();
-
- if (query == '')
- return;
-
- if (self.requestingSuggest)
- return;
-
- self.requestingSuggest = true;
-
- var data = {
- query : query
- }
-
- self.postSuggestRequest(data);
- };
-
- //
- // searchRequest - search request
- this.postSearchRequest = function(data) {
-
- if (self.nextant_sharelink)
- $.post(OC.filePath('nextant', 'ajax', 'search_public.php'),
- data, self.searchRequestResult);
- else
- $.post(OC.filePath('nextant', 'ajax', 'search.php'), data,
- self.searchRequestResult);
- };
-
- //
- // suggest request
- this.postSuggestRequest = function(data) {
-
- if (self.suggestNoSpam)
- return;
-
- if (self.nextant_sharelink)
- $.post(
- OC
- .filePath('nextant', 'ajax',
- 'suggest_public.php'), data,
- self.suggestRequestResult);
- else
- $.post(OC.filePath('nextant', 'ajax', 'suggest.php'), data,
- self.suggestRequestResult);
- };
-
- //
- // searchRequestResult - parse result from last request
- this.searchRequestResult = function(infos) {
-
- var result = infos.result;
-
- var origResult = [];
- if (self.config == null
- || self.config.index_files_nextant_only != '1')
- origResult = self.currentFileResult();
-
- self.searchResult = origResult.concat(result);
- result = self.searchResult;
-
- if (result == null)
- return;
-
- var data = [];
- for (var i = 0; i < result.length; i++) {
- if (result[i] == null || result[i].entry == null)
- continue;
-
- var alr = false;
- for (var j = 0; j < data.length; j++) {
- if (data[j].id == result[i].entry.id) {
- alr = true;
- break;
- }
- }
-
- if (!alr)
- data.push(result[i].entry);
- }
-
- self.fileList.setSort('score', 'desc', false, false);
- self.fileList.setFiles(data);
-
- self.requesting = false;
- $('#searchbox').removeClass('searchbox_querying');
-
- self.updateSearchResult();
-
- if (infos.query && $('#searchbox').val() != infos.query)
- self.sendSearchRequest();
- };
-
- //
- // updateSearchResult - update and morph the filelist with result
- this.updateSearchResult = function() {
-
- var result = self.searchResult;
- if (result == null)
- return;
-
- // if (self.currQuery == '')
- // return;
-
- self.locked = false;
-
- // We edit each row
- _.each(result, function(item) {
- if (item == null)
- return;
- if (item.entry == null)
- return;
-
- tr = self.getElem(item.entry.name);
-
- if (!$(tr).length)
- return;
-
- self.__morphLink(tr, item);
- self.__morphResultDisplay(tr, item);
- self.__morphOverlayIcon(tr, item);
- self.__morphBookmarksFileAction(tr, item);
- });
-
- self.__morphSummary(result);
- self.__morphEmptyContent(result);
-
- // done
- self.locked = true;
- };
-
- //
- this.suggestRequestResult = function(response) {
-
- self.requestingSuggest = false;
- if (response.query && $('#searchbox').val() != response.query)
- self.sendSuggestRequest();
-
- if (response == null || response.status > 0
- || response.result == null
- || response.result.length == 0) {
-
- if (response.status > 0) {
- self.suggestNoSpam = true;
- setTimeout(function() {
- self.suggestNoSpam = false;
- }, 60000);
- }
-
- if ($('#nextant_suggestion').length)
- $('#nextant_suggestion').hide(200);
- return;
- }
-
- if (!$('#nextant_suggestion').length) {
- if (self.nextant_sharelink)
- $('#body-public').append(
- $('<div></div>').attr('id',
- 'nextant_suggestion'));
- else
- $('#body-user').append(
- $('<div></div>').attr('id',
- 'nextant_suggestion'));
- }
-
- self.suggestDisplay();
-
- $('#nextant_suggestion').empty();
- var result = response.result;
- for (var i = 0; i < result.length; i++) {
- var first = '';
- if (i == 0)
- first = 'nextant_suggestion_firstitem';
-
- $('#nextant_suggestion').append(
- $('<div></div>').attr('id', 'nextant_sugg_' + i)
- .attr('class',
- 'nextant_suggestion_item ' + first)
- .html(result[i].suggestion));
- }
-
- $('.nextant_suggestion_item').click(function() {
- self.suggestReplace($(this).text());
- // self.searchRequest($('#searchbox'));
- });
- };
-
- //
- // init search on shared link
- this.delayedSearchRequest = function() {
-
- self.initFileList();
- // self.currQuery = query;
-
- if (self.timerQuery != null)
- window.clearTimeout(self.timerQuery);
-
- var delay = 250;
- if (self.config != null)
- switch (self.config.resource_level) {
- case '1':
- delay = 400;
- break;
-
- case '5':
- delay = 150;
- break;
- }
-
- self.timerQuery = setTimeout(function() {
- self.sendSearchRequest();
- }, delay);
- };
-
- //
- // return array containing current file from current directory that
- // fit the query.
- // (like current search in files app)
- this.currentFileResult = function() {
- var currFiles = self.currFiles;
- var data = [];
-
- if (currFiles == null || currFiles.length == 0)
- return data;
-
- for (var i = 0; i < currFiles.length; i++) {
-
- if (currFiles[i].name.toLowerCase().indexOf(
- $('#searchbox').val().toLowerCase()) === -1)
- continue;
-
- data.push({
- data : {
- id : currFiles[i].id,
- score : 9999
- },
- entry : currFiles[i]
- });
- }
-
- return data;
- };
-
- //
- // refresh display of suggestion
- this.suggestDisplay = function() {
-
- var offset = $('#searchbox').offset();
- var height = $('#searchbox').height();
- var top = offset.top + height + "px";
- var left = offset.left + "px";
-
- $('#nextant_suggestion').css({
- 'position' : 'absolute',
- 'left' : left,
- 'top' : top
- });
-
- if (!$('#nextant_suggestion').length)
- return;
- if (self.searchboxFocus)
- $('#nextant_suggestion').show(200);
- else
- $('#nextant_suggestion').hide(200);
- };
-
- //
- // replace search with suggestion
- this.suggestReplace = function(suggestion) {
- $('#searchbox').val(suggestion + ' ');
- $('#searchbox').focus();
- };
-
- //
- // detect mutation FileList
- this.mutationFileList = function(mutations, observer) {
- if (self.locked)
- self.updateSearchResult();
- };
-
- //
- // Go To Folder. Called on FileActions
- this.onGoToFolder = function(path, context) {
- var apath = path.split('/');
-
- var dir = '';
- var filename = '';
- for (var i = 0; i < apath.length; i++) {
- filename = apath[i];
- dir += '/';
- if (i < (apath.length - 1))
- dir += filename;
- }
-
- // window.alert('DIR: ' + dir + ' - FILENAME: ' + filename);
-
- var link = '';
- if (self.nextant_sharelink)
- link = '/s/' + self.getShareLinkKey()
- + '?path={dir}&scrollto={scrollto}';
-
- if (link == '')
- link = '/apps/files/?dir={dir}&scrollto={scrollto}'
-
- window.location = OC.generateUrl(link, {
- dir : dir,
- scrollto : filename
- });
-
- };
-
- //
- // get TR elem from filelist
- this.getElem = function(file) {
- var list = $('#fileList').children('tr');
- for (var i = 0; i < list.length; i++) {
- if ($(list[i]).attr('data-file') == file)
- return $(list[i]);
- }
-
- return null;
- };
-
- //
- // get info from url
- this.get = function(name, url) {
-
- if (!url)
- url = window.location.href;
- name = name.replace(/[\[\]]/g, "\\$&");
- var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex
- .exec(url);
- if (!results || !results[2])
- return '';
-
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
- };
-
- this.getShareLinkKey = function() {
- if (!self.nextant_sharelink)
- return '';
-
- dir = window.location.href.split('/');
- key = dir[dir.length - 1];
- return key;
- };
-
- //
- // MORPH
- //
-
- //
- // fix the subfolder link
- //
- this.__morphLink = function(tr, item) {
- $(tr).attr('data-path', item.entry.dirpath);
- var elemhref = $(tr).find('td.filename').find('a.name');
- if (!$(elemhref).length)
- return;
-
- if (self.nextant_sharelink) {
- var link = parent.location.protocol + '//' + location.host
- + OC.generateUrl('/s/') + self.getShareLinkKey();
- link += '/download?path=' + item.entry.dirpath + '&files='
- + item.entry.filename;
- $(elemhref).attr('href', link.replace(/%2F/g, '/'));
- return;
- }
-
- // fix files link
- if (item.data.type == 'files') {
- $(elemhref).attr('href',
- $(elemhref).attr('href').replace(/%2F/g, '/'));
- $(tr).attr('data-file', item.entry.filename);
- }
-
- // fix bookmark link
- if (item.data.type == 'bookmarks')
- $(elemhref).attr('href', item.data.path).attr('target',
- '_blank');
-
- };
-
- //
- // fix the display and add few lines
- //
- this.__morphResultDisplay = function(tr, item) {
- var elemname = $(tr).find('td.filename').find('a.name').find(
- 'span.nametext');
-
- if (item.data.lines == null)
- return;
-
- $(elemname).empty();
- var displaydiv = $('<span></span>');
- if (item.data.lines[1])
- displaydiv.append($('<span></span>').attr('class',
- 'nextant_line nextant_line1').html(
- item.data.lines[1]));
- if (item.data.lines[2])
- displaydiv.append($('<span></span>').attr('class',
- 'nextant_line nextant_line2').html(
- item.data.lines[2]));
- if (item.data.lines[3])
- displaydiv.append($('<span></span>').attr('class',
- 'nextant_line nextant_line3').html(
- item.data.lines[3]));
-
- $(elemname).append(displaydiv);
- $(elemname).css('width', '800px');
-
- };
-
- //
- // Add overlay icon
- //
- this.__morphOverlayIcon = function(tr, item) {
-
- var elemicon = $(tr).find('td.filename').find('div.thumbnail');
-
- if (item.data.type == 'bookmarks')
- elemicon.append($('<div></div>').attr(
- {
- 'class' : 'nextant_details',
- 'style' : "background-image: url('"
- + OC.imagePath('nextant',
- 'bookmarks.svg') + "')"
- }));
- if (item.data.shared)
- elemicon.append($('<div></div>').attr(
- {
- 'class' : 'nextant_details',
- 'style' : "background-image: url('"
- + OC.imagePath('core',
- 'actions/shared.svg') + "')"
- }));
- if (item.data.deleted)
- elemicon.append($('<div></div>').attr(
- {
- 'class' : 'nextant_details',
- 'style' : "background-image: url('"
- + OC.imagePath('core',
- 'actions/delete.svg') + "')"
- }));
- };
-
- //
- // removing fileaction on bookmarks
- //
- this.__morphBookmarksFileAction = function(tr, item) {
- if (item.data.type != 'bookmarks')
- return;
-
- $(tr).find('.filename').on('click', function(e) {
- e.stopPropagation();
- });
- $(tr).find('.fileactions').empty().on('click', function(e) {
- e.stopPropagation();
- });
- $(tr).find('.filesize').empty().on('click', function(e) {
- e.stopPropagation();
- });
- $(tr).find('.date').on('click', function(e) {
- e.stopPropagation();
- });
- };
-
- //
- // fix Summary
- //
- this.__morphSummary = function(files) {
-
- var cBookmarks = 0;
- for (var i = 0; i < files.length; i++) {
- if (files[i] == null)
- continue;
- if (files[i].data.type == 'bookmarks')
- cBookmarks++;
- }
-
- var elemsumm = $('tr.summary').find('span.info');
- if (!elemsumm.length)
- return;
-
- // First, fix the current cummary
- self.fileList.fileSummary.calculate(self.fileList.files);
- self.fileList.fileSummary.summary.totalFiles -= cBookmarks;
- self.fileList.fileSummary.update();
-
- // Then, add a summary for bookmarks
- elemsumm.find('span.bminfo').text(
- cBookmarks + ' bookmark'
- + ((cBookmarks > 1) ? 's' : ''));
-
- if (cBookmarks == 0) {
- elemsumm.find('span.bminfo').addClass('hidden');
- elemsumm.find('span.bmconnector').addClass('hidden');
- } else {
-
- elemsumm.find('span.bminfo').removeClass('hidden');
- elemsumm.find('span.bmconnector').removeClass('hidden');
-
- if (files.length == cBookmarks) {
- $('tr.summary').removeClass('hidden');
- elemsumm.find('span.dirinfo').addClass('hidden');
- elemsumm.find('span.connector').addClass('hidden');
- elemsumm.find('span.fileinfo').addClass('hidden');
- elemsumm.find('span.bmconnector').addClass('hidden');
-
- } else if (elemsumm.find('span.fileinfo.hidden').length
- || elemsumm.find('span.dirinfo.hidden').length) {
- } else
- elemsumm.find('span.connector').text(', ');
- }
- };
-
- //
- // fix empty result div
- //
- this.__morphEmptyContent = function(files) {
- if (files.length > 0)
- setTimeout(function() {
- $('#searchresults').find('div.emptycontent').addClass(
- 'hidden')
- }, 200);
- };
-
- // register
- OC.Plugins.register('OCA.Search', this);
- },
-
- attach : function(search) {
- var self = this;
-
- // receiving search request in Files App
- search.setFilter('files', function(query) {
- self.sendSuggestRequest();
- self.delayedSearchRequest();
- });
-
- if (self.fileAppLoaded())
- self.nextant_sharelink = false;
-
- self.initShareLink();
-
- // init Search/FileList if needed
- self.initFileList();
-
- //
- // Add few elem Summary
- var elemsumm = $('tr.summary').find('span.info');
- elemsumm.find('span.fileinfo').after(function() {
- return $('<span></span>').attr('class', 'bminfo hidden');
- });
- elemsumm.find('span.fileinfo').after(
- function() {
- return $('<span></span>').attr('class',
- 'bmconnector hidden').text(
- elemsumm.find('span.connector').text())
- });
-
- //
- // Stop Mutation on click
- $('#app-navigation').find('a').on('click', function(e) {
- // self.currQuery = '';
- self.fileList.setSort('name', 'asc', false, false);
- });
-
- //
- // Mutations
- MutationObserver = window.MutationObserver
- || window.WebKitMutationObserver;
-
- var observerFileList = new MutationObserver(function(mutations,
- observer) {
- self.mutationFileList(mutations, observer);
- });
-
- observerFileList.observe($('#fileList')[0], {
- childList : true,
- attributes : true
- });
-
- // animate suggest popup
- $('#searchbox').focusout(function() {
- self.searchboxFocus = false;
- self.suggestDisplay();
- });
-
- $('#searchbox').focusin(function() {
- self.searchboxFocus = true;
- self.suggestDisplay();
- });
-
- $(window).resize(function() {
- self.suggestDisplay();
- });
-
- }
- };
- OCA.Search.Nextant = Nextant;
- OCA.Search.nextant = new Nextant();
-
- // Sort per score (also index if score is identical)
- OCA.Files.FileList.Comparators.score = function(f1, f2) {
- result = OCA.Search.nextant.searchResult;
- if (result == null)
- return;
-
- var s1 = 0;
- var s2 = 0;
- var i1 = 99;
- var i2 = 99;
- for (var i = 0; i < result.length; i++) {
- if (result[i] == null)
- continue;
- if (result[i].data.id == f1.id)
- i1 = i;
- if (result[i].data.id == f2.id)
- i2 = i;
- if (result[i].data.id == f1.id)
- s1 = result[i].data.score;
- if (result[i].data.id == f2.id)
- s2 = result[i].data.score;
- }
-
- if (s1 < s2)
- return -1;
- else if (s1 > s2)
- return 1;
- else {
- if (i1 > i2)
- return -1;
- else
- return 1;
- }
- };
-
-})();
diff --git a/js/settings.admin.js b/js/settings.admin.js
deleted file mode 100644
index ab9ef3d..0000000
--- a/js/settings.admin.js
+++ /dev/null
@@ -1,775 +0,0 @@
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-$(document)
- .ready(
- function() {
-
- var timerSavingFilesFiltersExtensions = null;
-
- var nextantSettings = {
-
- init : function() {
- $('#nextant-display').fadeOut(0);
- $('#nextant_saving_status').fadeOut(0);
- $('#nextant_saving_check').fadeOut(0);
- $('#nextant_saving_settings').fadeOut(0);
- $('#nextant_saving_files').fadeOut(0);
- $('#nextant_saving_files_filters').fadeOut(0);
- $('#nextant_saving_bookmarks').fadeOut(0);
- nextantSettings.statusclearall(true);
- nextantSettings.checksuboptions(true);
- setInterval(function() {
- nextantSettings.saving('check', true);
- nextantSettings.checksuboptions(false)
- }, 60000);
- },
-
- saving : function(rub, load) {
- if (load) {
- $('#nextant_saving_' + rub).fadeIn(50);
- } else
- $('#nextant_saving_' + rub).fadeOut(50);
- },
-
- savesuboptions_files : function(switched) {
-
- nextantSettings.saving('files', true);
-
- var data = {
- index_files : ($('#solr_index_files')
- .is(':checked')) ? 1 : 0,
- index_files_max_size : $(
- '#solr_index_files_max_size').val(),
- index_files_tree : ($('#solr_index_files_tree')
- .is(':checked')) ? 1 : 0,
- index_files_nextant_only : ($('#solr_index_files_nextant_only')
- .is(':checked')) ? 1 : 0,
- index_files_trash : ($('#solr_index_files_trash')
- .is(':checked')) ? 1 : 0,
- index_files_trash : ($('#solr_index_files_trash')
- .is(':checked')) ? 1 : 0,
- index_files_sharelink : ($('#solr_index_files_sharelink')
- .is(':checked')) ? 1 : 0,
- index_files_federated : ($('#solr_index_files_federated')
- .is(':checked')) ? 1 : 0,
- index_files_external : ($('#solr_index_files_external')
- .is(':checked')) ? 1 : 0,
- index_files_encrypted : ($('#solr_index_files_encrypted')
- .is(':checked')) ? 1 : 0
- }
-
- if (switched == 'index_files')
- data.index_files = (data.index_files == 1) ? 0
- : 1;
-
- if (switched == 'index_files_tree')
- data.index_files_tree = (data.index_files_tree == 1) ? 0
- : 1;
-
- if (switched == 'index_files_nextant_only')
- data.index_files_nextant_only = (data.index_files_nextant_only == 1) ? 0
- : 1;
-
- if (switched == 'index_files_trash')
- data.index_files_trash = (data.index_files_trash == 1) ? 0
- : 1;
-
- if (switched == 'index_files_sharelink')
- data.index_files_sharelink = (data.index_files_sharelink == 1) ? 0
- : 1;
-
- if (switched == 'index_files_federated')
- data.index_files_federated = (data.index_files_federated == 1) ? 0
- : 1;
-
- if (switched == 'index_files_external')
- data.index_files_external = (data.index_files_external == 1) ? 0
- : 1;
-
- if (switched == 'index_files_encrypted')
- data.index_files_encrypted = (data.index_files_encrypted == 1) ? 0
- : 1;
-
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'option_files.php'), data,
- nextantSettings.updatesuboptions);
- },
-
- savesuboptions_files_filters : function(switched) {
-
- nextantSettings.saving('files_filters', true);
-
- var data = {
- index_files_filters_text : ($('#solr_filters_text')
- .is(':checked')) ? 1 : 0,
- index_files_filters_pdf : ($('#solr_filters_pdf')
- .is(':checked')) ? 1 : 0,
- index_files_filters_office : ($('#solr_filters_office')
- .is(':checked')) ? 1 : 0,
- index_files_filters_image : ($('#solr_filters_image')
- .is(':checked')) ? 1 : 0,
- index_files_filters_audio : ($('#solr_filters_audio')
- .is(':checked')) ? 1 : 0,
- index_files_filters_extensions : $(
- '#solr_filters_extensions').val()
- }
-
- if (switched == 'index_files_filters_text')
- data.index_files_filters_text = (data.index_files_filters_text == 1) ? 0
- : 1;
- if (switched == 'index_files_filters_pdf')
- data.index_files_filters_pdf = (data.index_files_filters_pdf == 1) ? 0
- : 1;
- if (switched == 'index_files_filters_office')
- data.index_files_filters_office = (data.index_files_filters_office == 1) ? 0
- : 1;
- if (switched == 'index_files_filters_image')
- data.index_files_filters_image = (data.index_files_filters_image == 1) ? 0
- : 1;
- if (switched == 'index_files_filters_audio')
- data.index_files_filters_audio = (data.index_files_filters_audio == 1) ? 0
- : 1;
-
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'option_files_filters.php'), data,
- nextantSettings.updatesuboptions);
- },
- savesuboptions_bookmarks : function(switched) {
-
- nextantSettings.saving('bookmarks', true);
-
- var data = {
- index_bookmarks : ($('#solr_index_bookmarks')
- .is(':checked')) ? 1 : 0,
- }
-
- if (switched == 'index_bookmarks')
- data.index_bookmarks = (data.index_bookmarks == 1) ? 0
- : 1;
-
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'option_bookmarks.php'), data,
- nextantSettings.updatesuboptions);
- },
-
- savesuboptions_status : function(switched) {
-
- nextantSettings.saving('status', true);
-
- var force_index = 0;
- if (switched == 'force_index')
- force_index = 1;
-
- var data = {
- resource_level : $('#solr_resource_level')
- .val(),
- index_live : $('#solr_index_live').val(),
- use_cron : ($('#solr_use_cron').is(':checked')) ? 1
- : 0,
- index_delay_min : $('#solr_index_delay_min')
- .val(),
- index_delay_max : $('#solr_index_delay_max')
- .val(),
- force_index : force_index
- }
-
- if (switched == 'use_cron')
- data.use_cron = (data.use_cron == 1) ? 0 : 1;
-
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'option_status.php'), data,
- nextantSettings.updatesuboptions);
- },
-
- checksuboptions : function(instant) {
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'updateSubOptions.php'), {
- instant : instant,
- source : 'check'
- }, nextantSettings.updatesuboptions);
- },
-
- updatesuboptions : function(response) {
- var delay = 600;
- if (response.instant == 'true')
- delay = 0;
-
- if ($('#nextant_version').text() != ''
- && response.configured == '0')
- return;
-
- if (response.source != '')
- nextantSettings.saving(response.source, false);
-
- $('#nextant_version')
- .text(response.nextant_version);
- $('#solr_url').val(response.solr_url);
- $('#solr_core').val(response.solr_core);
- $('#solr_timeout').val(response.solr_timeout);
-
- // if (response.index_live == 1
- // && response.ext_sysvmsg_loaded == false)
- // response.index_live = 2;
-
- if (response.configured > 0) {
- $('#nextant_suboptions :input').prop(
- 'disabled', false);
- $('#nextant_help_link').unbind('click');
- $('#nextant_suboptions').fadeTo(delay, 1);
- // $('#solr_index_live_queuekey').prop('disabled',
- // true);
- // if (response.index_live == 1)
- // $('#solr_index_live_queuekey').fadeTo(
- // delay, 0.85);
- // else
- // $('#solr_index_live_queuekey').fadeTo(
- // delay, 0);
- // if (response.ext_sysvmsg_loaded == false)
- // $('#solr_index_live option[value="1"]')
- // .prop('disabled', true);
- // else
- // $('#solr_index_live option[value="1"]')
- // .prop('disabled', false);
-
- } else {
- $('#nextant_suboptions :input').attr(
- "disabled", true);
- $('#nextant_help_link').bind('click',
- function(e) {
- e.preventDefault();
- })
- $('#nextant_suboptions').fadeTo(delay, 0.4);
- }
-
- $('#solr_index_files').prop('checked',
- (response.index_files == 1));
- $('#solr_index_files_tree').prop('checked',
- (response.index_files_tree == 1));
- $('#solr_index_files_nextant_only').prop('checked',
- (response.index_files_nextant_only == 1));
- $('#solr_index_files_trash').prop('checked',
- (response.index_files_trash == 1));
- $('#solr_index_files_sharelink').prop('checked',
- (response.index_files_sharelink == 1));
- $('#solr_index_files_federated').prop('checked',
- (response.index_files_federated == 1));
- $('#solr_index_files_external').prop('checked',
- (response.index_files_external == 1));
- $('#solr_index_files_encrypted').prop('checked',
- (response.index_files_encrypted == 1));
- $('#solr_index_files_max_size').val(
- response.index_files_max_size);
-
- if (response.index_files == 1)
- $('#solr_sub_files').show(delay);
- else {
- $('#solr_sub_files').hide(delay);
- $('#nextant-filters').hide(delay);
- }
-
- if (response.files_external_app_enabled)
- $('#solr_index_files_external').prop(
- 'disabled', false);
- else {
- $('#solr_index_files_external').prop(
- 'disabled', true);
- $('#solr_index_files_external').prop('checked',
- false);
- }
-
- $('#solr_filters_text').prop('checked',
- (response.index_files_filters_text == 1));
- $('#solr_filters_pdf').prop('checked',
- (response.index_files_filters_pdf == 1));
- $('#solr_filters_office').prop('checked',
- (response.index_files_filters_office == 1));
- $('#solr_filters_image').prop('checked',
- (response.index_files_filters_image == 1));
- $('#solr_filters_item').prop('checked',
- (response.index_files_filters_item == 1));
- if ($('#solr_filters_extensions').val() == '')
- $('#solr_filters_extensions')
- .val(
- response.index_files_filters_extensions);
-
- $('#solr_index_bookmarks').prop('checked',
- (response.index_bookmarks == 1));
-
- if (response.bookmarks_app_enabled) {
- $('#nextant_bookmarks_appdisabled').hide(delay);
- $('#nextant_bookmarks_appenabled').show(delay);
-
- $('#solr_index_bookmarks').prop('checked',
- (response.index_bookmarks == 1));
- } else {
- $('#nextant_bookmarks_appdisabled').show(delay);
- $('#nextant_bookmarks_appenabled').hide(delay);
- }
-
- if (response.index_bookmarks == 1)
- $('#solr_sub_bookmarks').show(delay);
- else
- $('#solr_sub_bookmarks').hide(delay);
-
- $('#solr_resource_level').val(
- response.resource_level);
-
- $('#solr_index_live').val(response.index_live);
- // $('#solr_index_live_queuekey').val(
- // response.index_live_queuekey);
-
- $('#solr_use_cron').prop('checked',
- (response.use_cron == 1));
-
- $('#solr_index_delay_min').val(
- response.index_delay_min);
- $('#solr_index_delay_max').val(
- response.index_delay_max);
-
- if (response.index_files_tree == 1) {
- $('#solr_index_files_nextant_only').attr(
- "disabled", false);
- $('#solr_index_files_nextant_only_span')
- .fadeTo(delay, 1);
- } else {
- $('#solr_index_files_nextant_only').attr(
- "disabled", true);
- $('#solr_index_files_nextant_only_span')
- .fadeTo(delay, 0.4);
- }
-
- if (response.index_files_last > 0)
- $('#solr_index_files_last').text(
- response.index_files_last_format);
- else
- $('#solr_index_files_last').text(
- t('nextant', 'never'));
-
- if (response.index_bookmarks_last > 0)
- $('#solr_index_bookmarks_last').text(
- response.index_bookmarks_last_format);
- else
- $('#solr_index_bookmarks_last').text(
- t('nextant', 'never'));
-
- if (response.configured == 0) {
- $('#solr_current_docs')
- .text(
- t('nextant',
- 'Nextant is not configured yet'));
- $('#solr_current_segments').text('');
- $('#nextant_force_index').hide(delay);
- $('#nextant_index_scheduled').hide(delay);
- $('#nextant_first_index').hide(delay);
- $('#nextant_index_scheduled').hide(delay);
- $('#nextant_index_inprogress').hide(delay);
- } else if (response.solr_ping == 'false') {
- $('#solr_current_docs').text(
- 'Solr Core is down');
- $('#solr_current_segments').text('');
- } else {
- if (response.index_locked > 0) {
- $('#nextant_first_index').hide(delay);
- $('#nextant_index_scheduled').hide(delay);
- $('#nextant_force_index').hide(delay);
- $('#nextant_index_inprogress').show(delay);
- } else if (response.configured == 2) {
- $('#nextant_first_index').show(delay);
- $('#nextant_index_scheduled').hide(delay);
- $('#nextant_force_index').hide(delay);
- $('#nextant_index_inprogress').hide(delay);
- } else if (response.index_files_needed == 1) {
- $('#nextant_first_index').hide(delay);
- $('#nextant_force_index').hide(delay);
- $('#nextant_index_scheduled').show(delay);
- $('#nextant_index_inprogress').hide(delay);
- } else {
- $('#nextant_first_index').hide(delay);
- $('#nextant_index_scheduled').hide(delay);
- $('#nextant_force_index').show(delay);
- $('#nextant_index_inprogress').hide(delay);
- }
- if (response.current_docs > 0) {
- $('#solr_current_docs').text(
- response.current_docs);
- $('#solr_current_segments').text(
- response.current_segments);
- } else
- $('#solr_current_docs').text('none');
- }
- },
-
- statusclearall : function(instant) {
- nextantSettings.statusclear('#ping', instant);
- nextantSettings.statusclear('#schema', instant);
- nextantSettings.statusclear('#extract', instant);
- nextantSettings.statusclear('#update', instant);
- nextantSettings.statusclear('#search', instant);
- nextantSettings.statusclear('#delete', instant);
- nextantSettings.statusclear('#save', instant);
- },
-
- statusclear : function(vid, instant) {
- var delay = 200;
- if (instant)
- delay = 0;
-
- $('#nextant-display').children(vid).children(
- '#icon_fail').fadeTo(delay, 0);
- $('#nextant-display').children(vid).children(
- '#icon_check').fadeTo(delay, 0);
- $('#nextant-display').children(vid).children(
- '#text').fadeTo(delay, 0);
- },
-
- status : function(vid, text, level) {
- $('#nextant-display').children(vid).children(
- '#text').text(text).fadeTo(200, 1);
- var src = '';
- if (level == 1) {
- $('#nextant-display').children(vid).children(
- '#icon_check').fadeTo(200, 1);
- $('#nextant-display').children(vid).children(
- '#icon_fail').fadeTo(200, 0);
- }
-
- if (level == 2) {
- $('#nextant-display').children(vid).children(
- '#icon_check').fadeTo(200, 0);
- $('#nextant-display').children(vid).children(
- '#icon_fail').fadeTo(200, 1);
-
- }
- },
-
- filtersswitch : function() {
- if ($('#nextant-filters').is(':visible'))
- nextantSettings.filtershide();
- else
- nextantSettings.filtersshow();
- },
-
- filtersshow : function() {
- $('#nextant-filters').show(400);
- },
-
- filtershide : function() {
- $('#nextant-filters').hide(400);
- },
-
- save : function() {
- $('#nextant-display').fadeIn(300);
- $('#nextant_apply').attr('disabled', true);
- $('#solr_url').attr('disabled', true);
- $('#solr_core').attr('disabled', true);
- $('#solr_timeout').attr('disabled', true);
- nextantSettings.test('ping');
- },
-
- test_standby : function(command) {
- // setTimeout(function() {
- nextantSettings.test(command);
- // }, 400);
- },
-
- test : function(command) {
-
- var data = {
- solr_url : $('#solr_url').val(),
- solr_core : $('#solr_core').val(),
- solr_timeout : $('#solr_timeout').val(),
- command : command
- }
-
- switch (command) {
- case 'ping':
- if ($('#nextant-display').children('#ping')
- .children('#text').text() != '')
- nextantSettings.statusclearall(false);
- nextantSettings.status('#ping', t('nextant',
- 'Ping querying your Solr Server'), 0);
- break;
-
- case 'schema':
- nextantSettings.status('#schema', t('nextant',
- 'Verifying Schema integrity'), 0);
- break;
-
- case 'extract':
- nextantSettings.status('#extract', t('nextant',
- 'Test simple text extract query'), 0);
- break;
-
- case 'update':
- nextantSettings.status('#update', t('nextant',
- 'Test update document query'), 0);
- break;
-
- case 'search':
- nextantSettings.status('#search', t('nextant',
- 'Test search query'), 0);
- break;
-
- case 'delete':
- nextantSettings.status('#delete', t('nextant',
- 'Removing the test document'), 0);
- break;
-
- case 'save':
- nextantSettings.saving('settings', true);
- nextantSettings
- .status(
- '#save',
- t('nextant',
- 'All test went fine. Saving your configuration'),
- 0);
- break;
- }
-
- $.post(OC.filePath('nextant', 'ajax/settings',
- 'admin.php'), data,
- nextantSettings.tested_standby);
- },
-
- tested_standby : function(response) {
- // setTimeout(function() {
- nextantSettings.tested(response);
- // }, 200);
- },
-
- tested : function(response) {
- nextantSettings.status('#' + response.command,
- response.message,
- (response.status == 'success') ? 1 : 2);
-
- switch (response.command) {
- case 'ping':
- if (response.status == 'success')
- nextantSettings.test_standby('schema');
- else
- nextantSettings.reset();
- break;
-
- case 'schema':
- if (response.status == 'success')
- nextantSettings.test_standby('extract');
- else
- nextantSettings.reset();
- break;
-
- case 'extract':
- if (response.status == 'success')
- nextantSettings.test_standby('update');
- else
- nextantSettings.reset();
- break;
-
- case 'update':
- if (response.status == 'success')
- nextantSettings.test_standby('search');
- else
- nextantSettings.reset();
- break;
-
- case 'search':
- if (response.status == 'success')
- nextantSettings.test_standby('delete');
- else
- nextantSettings.reset();
- break;
-
- case 'delete':
- if (response.status == 'success')
- nextantSettings.test_standby('save');
- else
- nextantSettings.reset();
- break;
-
- case 'save':
- nextantSettings.saving('settings', false);
- nextantSettings.reset();
- nextantSettings.checksuboptions(false);
- setTimeout(function() {
- $('#nextant-display').fadeOut(300);
- }, 20000);
-
- break;
- }
-
- },
-
- reset : function() {
- $('#solr_url').attr('disabled', false);
- $('#solr_core').attr('disabled', false);
- $('#solr_timeout').attr('disabled', false);
- $('#nextant_apply').attr('disabled', false);
- }
- }
-
- $('#nextant_apply').on('click', nextantSettings.save);
-
- $('#solr_index_files_cont').mousedown(function() {
- nextantSettings.savesuboptions_files('index_files');
- });
-
- $('#solr_switch_filters').click(function() {
- nextantSettings.filtersswitch();
- });
-
- $('#nextant-filters').hide();
-
- $('#solr_index_files_max_size').on('input', function(e) {
- nextantSettings.savesuboptions_files();
- });
-
- $('#solr_index_files_tree')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_tree');
- });
-
- $('#solr_index_files_nextant_only')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_nextant_only');
- });
-
- $('#solr_index_files_trash')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_trash');
- });
-
- $('#solr_index_files_sharelink')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_sharelink');
- });
-
- $('#solr_index_files_federated')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_federated');
- });
-
- $('#solr_index_files_external')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_external');
- });
-
- $('#solr_index_files_encrypted')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files('index_files_encrypted');
- });
-
- $('#solr_filters_text')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files_filters('index_files_filters_text');
- });
- $('#solr_filters_pdf')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files_filters('index_files_filters_pdf');
- });
- $('#solr_filters_office')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files_filters('index_files_filters_office');
- });
- $('#solr_filters_image')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files_filters('index_files_filters_image');
- });
- $('#solr_filters_audio')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_files_filters('index_files_filters_audio');
- });
-
- $('#solr_filters_extensions')
- .on(
- 'input',
- function(e) {
- clearTimeout(timerSavingFilesFiltersExtensions)
- timerSavingFilesFiltersExtensions = setTimeout(
- function() {
- nextantSettings
- .savesuboptions_files_filters();
- }, 1200);
- });
-
- $('#nextant_force_index').on('click', function() {
- nextantSettings.savesuboptions_status('force_index');
- });
- $('#nextant_force_first_index').on('click', function() {
- nextantSettings.savesuboptions_status('force_index');
- });
-
- $('#solr_resource_level').on('change', function() {
- nextantSettings.savesuboptions_status();
- });
-
- $('#solr_index_live').on('change', function() {
- nextantSettings.savesuboptions_status();
- });
-
- $('#solr_use_cron').mousedown(function() {
- nextantSettings.savesuboptions_status('use_cron');
- });
-
- $('#solr_index_delay_min').on('input', function(e) {
- nextantSettings.savesuboptions_status();
- });
- $('#solr_index_delay_max').on('input', function(e) {
- nextantSettings.savesuboptions_status();
- });
-
- $('#solr_index_bookmarks_cont')
- .mousedown(
- function() {
- nextantSettings
- .savesuboptions_bookmarks('index_bookmarks');
-
- });
-
- nextantSettings.init();
-
- });
diff --git a/l10n/.tx/config b/l10n/.tx/config
deleted file mode 100644
index ff347ca..0000000
--- a/l10n/.tx/config
+++ /dev/null
@@ -1,9 +0,0 @@
-[main]
-host = https://www.transifex.com
-lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
-
-[nextcloud.nextant]
-file_filter = <lang>/nextant.po
-source_file = templates/nextant.pot
-source_lang = en
-type = PO
diff --git a/l10n/ast.js b/l10n/ast.js
deleted file mode 100644
index e735121..0000000
--- a/l10n/ast.js
+++ /dev/null
@@ -1,62 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Dir a la carpeta",
- "never" : "enxamƔs",
- "Nextant is not configured yet" : "EntĆ” nun se configurĆ³ Nextant",
- "Removing the test document" : "Desaniciando'l documentu de prueba",
- "Schema is fine" : "L'esquema ta bien",
- "Text extracted" : "Testu estrayĆ­u",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la estraiciĆ³n. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fallu anovando'l campu - Nun pue alcontrase'l documentu orixinal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Fallu nel unviu (Fallu #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fallu entrĆ­n s'anovaba'l campu (Fallu #%1$s)",
- "Document updated" : "Documentu anovƔu",
- "Found it" : "AlcontrƩlu",
- "Found something, but not what was expected." : "AlcontrƩ daquƩ, pero non de lo esperao.",
- "Cannot find any document" : "Nun pudo alcontrase documentu dalu",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la gueta. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)",
- "Test-document deleted" : "Documentu de testu desaniciƔu",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nun pudo desaniciase'l documentu de testu. Comprueba la configuraciĆ³n del to sirvidor Solr (Fallu #%1$s)",
- "Your configuration has been saved" : "GuardĆ³se la to configuraciĆ³n",
- "Configuration could not be saved. Please reload this page." : "Nun pudo guardase la configuraciĆ³n. Recarga esta pĆ”xina, por favor.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (gueta de testos completos)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifica la direiciĆ³n del to Solr y el nome del nucleu pa usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si nun tienes un servlet de Solr n'execuciĆ³n, na wiki pue alccontrase les guĆ­es d'instalaciĆ³n.",
- "You can also find more information there about this interface." : "TamiĆ©n pues alcontrar informaciĆ³n ellĆ­ tocante a esta interfaz.",
- "Saving" : "Guardando",
- "Settings" : "Axustes",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DireiriciĆ³n del to servlet Solr:",
- "Core:" : "Nucleu:",
- "Timeout (in seconds):" : "Escosa de tiempu (en segundos):",
- "Test and Save" : "Probar y guardar",
- "Index Files Tree:" : "Ɓrbole d'ƭndice de ficheros:",
- "Checking" : "Comprobando",
- "Nextant Status" : "EstƔu de Nextant",
- "Higher performance" : "Rindimientu mƔs altu",
- "High performance" : "Rindimientu altu",
- "Medium performance" : "Rindimientu mediu",
- "Low performance" : "Rindimientu baxu",
- "Lower performance" : "Rindimientu mƔs baxu",
- "Using Database" : "Usando base de datos",
- "hours" : "hores",
- "days" : "dĆ­es",
- "Nextcloud Cron:" : "Cron de Nextcloud:",
- "Number of documents:" : "NĆŗmberu de documentos:",
- "Number of segments:" : "NĆŗmberu de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "AconsƩyase facer el primer indizƔu de los tos ficheros usando'l comandu ./occ nextant:index .",
- "However, you can force it to be started as a background process." : "Por embargu, pues forcialu a que s'anicie como procesu de fondu.",
- "Force index" : "Forciar indizƔu",
- "Indexing is scheduled within the next few hours (Cron)" : "L'indizƔu ta planificƔu pa dientro d'unes hores (Cron)",
- "Indexing in progress" : "IndizƔu en cursu",
- "Type of files to extract" : "Triba de ficheros pa estrayer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ficheru de testu (txt, HTML, soĆ­tulos, cĆ³sigu fonteā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos ofimƔticos",
- "Image (JPEG, TIFF)" : "Imaxe (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ficheru d'audiu (MPĀ·, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Estensiones que desees inorar (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/ast.json b/l10n/ast.json
deleted file mode 100644
index 93fc707..0000000
--- a/l10n/ast.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{ "translations": {
- "Go to folder" : "Dir a la carpeta",
- "never" : "enxamƔs",
- "Nextant is not configured yet" : "EntĆ” nun se configurĆ³ Nextant",
- "Removing the test document" : "Desaniciando'l documentu de prueba",
- "Schema is fine" : "L'esquema ta bien",
- "Text extracted" : "Testu estrayĆ­u",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la estraiciĆ³n. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fallu anovando'l campu - Nun pue alcontrase'l documentu orixinal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Fallu nel unviu (Fallu #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fallu entrĆ­n s'anovaba'l campu (Fallu #%1$s)",
- "Document updated" : "Documentu anovƔu",
- "Found it" : "AlcontrƩlu",
- "Found something, but not what was expected." : "AlcontrƩ daquƩ, pero non de lo esperao.",
- "Cannot find any document" : "Nun pudo alcontrase documentu dalu",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la gueta. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)",
- "Test-document deleted" : "Documentu de testu desaniciƔu",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nun pudo desaniciase'l documentu de testu. Comprueba la configuraciĆ³n del to sirvidor Solr (Fallu #%1$s)",
- "Your configuration has been saved" : "GuardĆ³se la to configuraciĆ³n",
- "Configuration could not be saved. Please reload this page." : "Nun pudo guardase la configuraciĆ³n. Recarga esta pĆ”xina, por favor.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (gueta de testos completos)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifica la direiciĆ³n del to Solr y el nome del nucleu pa usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si nun tienes un servlet de Solr n'execuciĆ³n, na wiki pue alccontrase les guĆ­es d'instalaciĆ³n.",
- "You can also find more information there about this interface." : "TamiĆ©n pues alcontrar informaciĆ³n ellĆ­ tocante a esta interfaz.",
- "Saving" : "Guardando",
- "Settings" : "Axustes",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DireiriciĆ³n del to servlet Solr:",
- "Core:" : "Nucleu:",
- "Timeout (in seconds):" : "Escosa de tiempu (en segundos):",
- "Test and Save" : "Probar y guardar",
- "Index Files Tree:" : "Ɓrbole d'ƭndice de ficheros:",
- "Checking" : "Comprobando",
- "Nextant Status" : "EstƔu de Nextant",
- "Higher performance" : "Rindimientu mƔs altu",
- "High performance" : "Rindimientu altu",
- "Medium performance" : "Rindimientu mediu",
- "Low performance" : "Rindimientu baxu",
- "Lower performance" : "Rindimientu mƔs baxu",
- "Using Database" : "Usando base de datos",
- "hours" : "hores",
- "days" : "dĆ­es",
- "Nextcloud Cron:" : "Cron de Nextcloud:",
- "Number of documents:" : "NĆŗmberu de documentos:",
- "Number of segments:" : "NĆŗmberu de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "AconsƩyase facer el primer indizƔu de los tos ficheros usando'l comandu ./occ nextant:index .",
- "However, you can force it to be started as a background process." : "Por embargu, pues forcialu a que s'anicie como procesu de fondu.",
- "Force index" : "Forciar indizƔu",
- "Indexing is scheduled within the next few hours (Cron)" : "L'indizƔu ta planificƔu pa dientro d'unes hores (Cron)",
- "Indexing in progress" : "IndizƔu en cursu",
- "Type of files to extract" : "Triba de ficheros pa estrayer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ficheru de testu (txt, HTML, soĆ­tulos, cĆ³sigu fonteā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos ofimƔticos",
- "Image (JPEG, TIFF)" : "Imaxe (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ficheru d'audiu (MPĀ·, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Estensiones que desees inorar (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/ca.js b/l10n/ca.js
deleted file mode 100644
index fb737da..0000000
--- a/l10n/ca.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Anar a la carpeta",
- "never" : "mai",
- "Nextant is not configured yet" : "Nextant no s'ha configurat encara",
- "Ping querying your Solr Server" : "Pink consulteu el servidor",
- "Verifying Schema integrity" : "ComprovaciĆ³ de la integritat de l'Esquema",
- "Test simple text extract query" : "Prova de consulta simple d'extracte de text",
- "Test update document query" : "Consulta de documents d'actualitzaciĆ³ de prova",
- "Test search query" : "Proveu la consulta de cerca",
- "Removing the test document" : "S'estĆ  eliminant el document de prova",
- "All test went fine. Saving your configuration" : "La prova ha anat bĆ©. S'estĆ  desant la configuraciĆ³",
- "Address-format incorrect" : "El format de l'adreƧa no Ʃs correcte",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ  activat, executant i responent a la consulta de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no respon a la consulta de ping (Error #%1$s)",
- "Schema is fine" : "L'esquema estƠ bƩ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No es pot verificar / reparar la integritat de l'esquema (Error #%1$s)",
- "Text extracted" : "Text extret",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "L'extracciĆ³ ha fallat. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Camp d'actualitzaciĆ³ d'errors: no es pot trobar el document original (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error durant el commit (error #%1$s)",
- "Error while updating field (Error #%1$s)" : "S'ha produĆÆt un error en actualitzar el camp (error nĆŗmero%1$s)",
- "Document updated" : "Document actualitzat",
- "Found it" : "Trobat",
- "Found something, but not what was expected." : "S'ha trobat alguna cosa, perĆ² no el que s'esperava.",
- "Cannot find any document" : "No es pot trobar cap document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ha fallat la cerca. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Test-document deleted" : "S'ha eliminat el document de prova",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No s'ha pogut suprimir el document de prova. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Your configuration has been saved" : "La vostra configuraciĆ³ s'ha guardat",
- "Configuration could not be saved. Please reload this page." : "No s'ha pogut desar la configuraciĆ³. Torna a carregar aquesta pĆ gina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifiqueu l'adreƧa del vostre Solr i el nom del nucli que voleu utilitzar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no teniu un servlet Solr executant, es poden trobar guies d'instalĀ·laciĆ³ a la wiki.",
- "You can also find more information there about this interface." : "TambĆ© podeu trobar mĆ©s informaciĆ³ sobre aquesta interfĆ­cie.",
- "Saving" : "Guardant",
- "Settings" : "ParĆ metres",
- "Nextant version:" : "VersiĆ³ Nextant:",
- "Address of your Solr servlet:" : "AdreƧa del vostre servlet Solr:",
- "Core:" : "Nucli:",
- "Timeout (in seconds):" : "Temps d'espera (en segons):",
- "Test and Save" : "Proba i desa:",
- "Indexing Files" : "Indexant arxius",
- "Maximum File Size (Mb):" : "Mida mĆ xima de l'arxiu: (Mb) :",
- "Edit your filters" : "Editeu els vostres filtres",
- "Index Files Tree:" : "Ć­ndex d'arxius",
- "Disable default search from Files" : "Desactiva la cerca predeterminada dels fitxers",
- "Index File Trash:" : "Ć­ndex: paperera d'arxiu ",
- "Index Public Links:" : "ƍndex EnllaƧos pĆŗblics:",
- "Index Federated Shares:" : "ƍndex Accions federades:",
- "Index External Storages:" : "ƍndex emmagatzemament extern:",
- "Index Encrypted Files:" : "ƍndex d'arxius encryptats:",
- "Last index:" : "ƚltim index:",
- "Indexing Bookmarks" : "Marcadors d'indexaciĆ³",
- "The App Bookmarks is not installed/enabled." : "Els marcadors d'aplicacions no estan instalĀ·lats / habilitats.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "S'han activat \"Marcadors d'aplicacions\", les vostres adreces d'interĆØs s'indicaran.",
- "Checking" : "Comprobant",
- "Nextant Status" : "Estat Nextant",
- "Resource Level:" : "Nivell de recurs:",
- "Higher performance" : "Major rendiment",
- "High performance" : "Alt rendiment",
- "Medium performance" : "Rendiment mitjĆ ",
- "Low performance" : "Baix rendiment",
- "Lower performance" : "Menor rendiment",
- "Live Index:" : "ƍndex en viu:",
- "Disabled" : "Deshabilitat",
- "Using Semaphore" : "Usant semĆ for",
- "Using Database" : "Utilitzant base de dades",
- "Minimum Background Index delay:" : "Retorn de l'Ć­ndex de fons mĆ­nim:",
- "hours" : "hores",
- "Maximum Background Index delay:" : "Retard mĆ xim de l'Ć­ndex de fons:",
- "days" : "dies",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Nombre de documents : ",
- "Number of segments:" : "Nombre de segments : ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "es recomana fer la primera indexaciĆ³ dels vostres fitxers utilitzant l'ordre ./occ nextant: index.",
- "However, you can force it to be started as a background process." : "Tanmateix, podeu obligar-lo a iniciar-se com a procƩs en segon pla.",
- "Force first index as a cronjob" : "ForƧa el primer ƭndex com a cronjob",
- "Force index" : "ForƧa index",
- "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³ estĆ  programada durant les properes hores (Cron)",
- "Indexing in progress" : "IndexaciĆ³ en procĆ©s",
- "Type of files to extract" : "Tipus de fitxers per extreure",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fitxer de text (text, HTML, subtĆ­tols, codi font ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documents Office",
- "Image (JPEG, TIFF)" : "Imatge (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Fitxer d'Ć udio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions que voleu ignorar (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/ca.json b/l10n/ca.json
deleted file mode 100644
index 88d7190..0000000
--- a/l10n/ca.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Anar a la carpeta",
- "never" : "mai",
- "Nextant is not configured yet" : "Nextant no s'ha configurat encara",
- "Ping querying your Solr Server" : "Pink consulteu el servidor",
- "Verifying Schema integrity" : "ComprovaciĆ³ de la integritat de l'Esquema",
- "Test simple text extract query" : "Prova de consulta simple d'extracte de text",
- "Test update document query" : "Consulta de documents d'actualitzaciĆ³ de prova",
- "Test search query" : "Proveu la consulta de cerca",
- "Removing the test document" : "S'estĆ  eliminant el document de prova",
- "All test went fine. Saving your configuration" : "La prova ha anat bĆ©. S'estĆ  desant la configuraciĆ³",
- "Address-format incorrect" : "El format de l'adreƧa no Ʃs correcte",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ  activat, executant i responent a la consulta de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no respon a la consulta de ping (Error #%1$s)",
- "Schema is fine" : "L'esquema estƠ bƩ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No es pot verificar / reparar la integritat de l'esquema (Error #%1$s)",
- "Text extracted" : "Text extret",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "L'extracciĆ³ ha fallat. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Camp d'actualitzaciĆ³ d'errors: no es pot trobar el document original (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error durant el commit (error #%1$s)",
- "Error while updating field (Error #%1$s)" : "S'ha produĆÆt un error en actualitzar el camp (error nĆŗmero%1$s)",
- "Document updated" : "Document actualitzat",
- "Found it" : "Trobat",
- "Found something, but not what was expected." : "S'ha trobat alguna cosa, perĆ² no el que s'esperava.",
- "Cannot find any document" : "No es pot trobar cap document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ha fallat la cerca. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Test-document deleted" : "S'ha eliminat el document de prova",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No s'ha pogut suprimir el document de prova. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)",
- "Your configuration has been saved" : "La vostra configuraciĆ³ s'ha guardat",
- "Configuration could not be saved. Please reload this page." : "No s'ha pogut desar la configuraciĆ³. Torna a carregar aquesta pĆ gina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifiqueu l'adreƧa del vostre Solr i el nom del nucli que voleu utilitzar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no teniu un servlet Solr executant, es poden trobar guies d'instalĀ·laciĆ³ a la wiki.",
- "You can also find more information there about this interface." : "TambĆ© podeu trobar mĆ©s informaciĆ³ sobre aquesta interfĆ­cie.",
- "Saving" : "Guardant",
- "Settings" : "ParĆ metres",
- "Nextant version:" : "VersiĆ³ Nextant:",
- "Address of your Solr servlet:" : "AdreƧa del vostre servlet Solr:",
- "Core:" : "Nucli:",
- "Timeout (in seconds):" : "Temps d'espera (en segons):",
- "Test and Save" : "Proba i desa:",
- "Indexing Files" : "Indexant arxius",
- "Maximum File Size (Mb):" : "Mida mĆ xima de l'arxiu: (Mb) :",
- "Edit your filters" : "Editeu els vostres filtres",
- "Index Files Tree:" : "Ć­ndex d'arxius",
- "Disable default search from Files" : "Desactiva la cerca predeterminada dels fitxers",
- "Index File Trash:" : "Ć­ndex: paperera d'arxiu ",
- "Index Public Links:" : "ƍndex EnllaƧos pĆŗblics:",
- "Index Federated Shares:" : "ƍndex Accions federades:",
- "Index External Storages:" : "ƍndex emmagatzemament extern:",
- "Index Encrypted Files:" : "ƍndex d'arxius encryptats:",
- "Last index:" : "ƚltim index:",
- "Indexing Bookmarks" : "Marcadors d'indexaciĆ³",
- "The App Bookmarks is not installed/enabled." : "Els marcadors d'aplicacions no estan instalĀ·lats / habilitats.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "S'han activat \"Marcadors d'aplicacions\", les vostres adreces d'interĆØs s'indicaran.",
- "Checking" : "Comprobant",
- "Nextant Status" : "Estat Nextant",
- "Resource Level:" : "Nivell de recurs:",
- "Higher performance" : "Major rendiment",
- "High performance" : "Alt rendiment",
- "Medium performance" : "Rendiment mitjĆ ",
- "Low performance" : "Baix rendiment",
- "Lower performance" : "Menor rendiment",
- "Live Index:" : "ƍndex en viu:",
- "Disabled" : "Deshabilitat",
- "Using Semaphore" : "Usant semĆ for",
- "Using Database" : "Utilitzant base de dades",
- "Minimum Background Index delay:" : "Retorn de l'Ć­ndex de fons mĆ­nim:",
- "hours" : "hores",
- "Maximum Background Index delay:" : "Retard mĆ xim de l'Ć­ndex de fons:",
- "days" : "dies",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Nombre de documents : ",
- "Number of segments:" : "Nombre de segments : ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "es recomana fer la primera indexaciĆ³ dels vostres fitxers utilitzant l'ordre ./occ nextant: index.",
- "However, you can force it to be started as a background process." : "Tanmateix, podeu obligar-lo a iniciar-se com a procƩs en segon pla.",
- "Force first index as a cronjob" : "ForƧa el primer ƭndex com a cronjob",
- "Force index" : "ForƧa index",
- "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³ estĆ  programada durant les properes hores (Cron)",
- "Indexing in progress" : "IndexaciĆ³ en procĆ©s",
- "Type of files to extract" : "Tipus de fitxers per extreure",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fitxer de text (text, HTML, subtĆ­tols, codi font ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documents Office",
- "Image (JPEG, TIFF)" : "Imatge (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Fitxer d'Ć udio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions que voleu ignorar (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/cs.js b/l10n/cs.js
deleted file mode 100644
index a2183cc..0000000
--- a/l10n/cs.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "JĆ­t do složky",
- "never" : "nikdy",
- "Nextant is not configured yet" : "Nextant jeÅ”tě nenĆ­ nakonfigurovĆ”n",
- "Ping querying your Solr Server" : "DotazovĆ”nĆ­ pingem vaÅ”eho Solr serveru",
- "Verifying Schema integrity" : "OvěřovĆ”nĆ­ integrity schĆ©matu",
- "Test simple text extract query" : "VyzkouÅ”et jednoduchĆ½ dotaz na extrakci textu",
- "Test update document query" : "dotaz zkouŔky aktualizace dokumentu",
- "Test search query" : "VyzkouÅ”et vyhledĆ”vacĆ­ dotaz",
- "Removing the test document" : "OdstraňovĆ”nĆ­ zkuÅ”ebnĆ­ho dokumentu",
- "All test went fine. Saving your configuration" : "VÅ”echny testy proběhly v poÅ™Ć”dku. UklĆ”dĆ”nĆ­ vaÅ”Ć­ konfigurace",
- "Address-format incorrect" : "ChybnĆ½ formĆ”t adresy",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr bÄ›Å¾Ć­ a odpovĆ­dĆ” na ping dotaz",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr neodpovĆ­dĆ” na na ping dotaz (chyba #%1$s)",
- "Schema is fine" : "SchĆ©ma je v poÅ™Ć”dku",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Nepodařilo se ověřit/opravit integritu schĆ©matu (chyba #%1$s)",
- "Text extracted" : "Text extrahovƔn",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrakce selhala. Zkontrolujte konfiguraci vaŔeho Solr serveru (chyba #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Chyba aktualizace pole - nelze najĆ­t pÅÆvodnĆ­ dokument - (chyba #%1$s)",
- "Error during commit (Error #%1$s)" : "Chyba při commitu (chyba #%1$s",
- "Error while updating field (Error #%1$s)" : "Chyba při aktualizaci pole (chyba #%1$s)",
- "Document updated" : "Dokument aktualizovƔn",
- "Found it" : "Nalezeno",
- "Found something, but not what was expected." : "Něco bylo nalezeno, ale ne to, co bylo očekĆ”vĆ”no",
- "Cannot find any document" : "Nelze najĆ­t Å¾Ć”dnĆ½ dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "VyhledĆ”vĆ”nĆ­ selhalo. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)",
- "Test-document deleted" : "ZkuÅ”ebnĆ­ dokument smazĆ”n",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nepodařilo se smazat zkuÅ”ebnĆ­ dokument. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)",
- "Your configuration has been saved" : "VaŔe konfigurace byla uložena",
- "Configuration could not be saved. Please reload this page." : "Konfiguraci se nepodařilo uložit. ProsĆ­m, obnovte tuto strĆ”nku.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (full-textovƩ vyhledƔvƔnƭ)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifikujte adresu vaÅ”eho Solru a jmĆ©no Ć”dra, kterĆ© se mĆ” pouÅ¾Ć­t",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Pokud nemĆ”te bÄ›Å¾Ć­cĆ­ servlet Solr, na wiki najdete prÅÆvodce instalacĆ­.",
- "You can also find more information there about this interface." : "TakĆ© zde mÅÆžete nalĆ©zt dalÅ”Ć­ informace o tomto rozhranĆ­",
- "Saving" : "UklƔdƔnƭ",
- "Settings" : "NastavenĆ­",
- "Nextant version:" : "Nextant verze:",
- "Address of your Solr servlet:" : "Adresa vaŔeho Solr servletu :",
- "Core:" : "JƔdro :",
- "Timeout (in seconds):" : "Čas vyprÅ”enĆ­ požadavku (sekundy) :",
- "Test and Save" : "VyzkouŔet a uložit",
- "Indexing Files" : "IndexovĆ”nĆ­ souborÅÆ",
- "Maximum File Size (Mb):" : "MaximƔlnƭ velikost souboru (Mb) :",
- "Edit your filters" : "Upravte vaŔe filtry",
- "Index Files Tree:" : "Indexovat strom souborÅÆ :",
- "Disable default search from Files" : "ZakĆ”zat vĆ½chozĆ­ hledĆ”nĆ­ ze souborÅÆ",
- "Index File Trash:" : "Odpad indexovƩho souboru:",
- "Index Public Links:" : "Index veřejnĆ½ch odkazÅÆ :",
- "Index Federated Shares:" : "Indexovat sdruženĆ” sdĆ­lenĆ­ :",
- "Index External Storages:" : "ExternĆ­ ĆŗložiÅ”tě indexu :",
- "Index Encrypted Files:" : "Indexovat Å”ifrovanĆ© soubory :",
- "Last index:" : "PoslednĆ­ index :",
- "Indexing Bookmarks" : "IndexovĆ”nĆ­ zĆ”ložek",
- "The App Bookmarks is not installed/enabled." : "Aplikace zĆ”ložky nenĆ­ nainstalovĆ”na/povolena",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Aplikace zĆ”ložky\" je povolena, vaÅ”e zĆ”ložky budou indexovĆ”ny",
- "Checking" : "Kontrola",
- "Nextant Status" : "Stav Nextantu",
- "Resource Level:" : "ƚroveň zdroje :",
- "Higher performance" : "VyÅ”Å”Ć­ vĆ½kon",
- "High performance" : "VysokĆ½ vĆ½kon",
- "Medium performance" : "StřednĆ­ vĆ½kon",
- "Low performance" : "NĆ­zkĆ½ vĆ½kon",
- "Lower performance" : "NiÅ¾Å”Ć­ vĆ½kon",
- "Live Index:" : "ŽivĆ½ index :",
- "Disabled" : "ZakƔzƔno",
- "Using Semaphore" : "PouÅ¾Ć­vĆ” se semafor",
- "Using Database" : "PouÅ¾Ć­vĆ” se databĆ”ze",
- "Minimum Background Index delay:" : "NejmenÅ”Ć­ spožděnĆ­ indexu na pozadĆ­ :",
- "hours" : "hodiny",
- "Maximum Background Index delay:" : "NejvětÅ”Ć­ zpožděnĆ­ indexace na pozadĆ­ :",
- "days" : "dny",
- "Nextcloud Cron:" : "Cron Nextcloudu :",
- "Number of documents:" : "Počet dokumentÅÆ :",
- "Number of segments:" : "Počet segmentÅÆ:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "doporučujeme dělat prvnĆ­ indexovĆ”nĆ­ vaÅ”ich souborÅÆ pomocĆ­ pÅ™Ć­kazu ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Ale mÅÆžete vynutit spuÅ”těnĆ­ jako proces na pozadĆ­.",
- "Force first index as a cronjob" : "Vynutit prvnĆ­ indexovĆ”nĆ­ jako Cron Ćŗlohu",
- "Force index" : "Vynutit index",
- "Indexing is scheduled within the next few hours (Cron)" : "IndexovĆ”nĆ­ je naplĆ”novĆ”no v pÅ™Ć­Å”tĆ­ch několika hodinĆ”ch (Cron)",
- "Indexing in progress" : "IndexovƔnƭ probƭhƔ",
- "Type of files to extract" : "Typ souborÅÆ k extrakci",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextovĆ½ soubor (text, HTML, titulky, zdrojovĆ½ kĆ³d, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "KancelĆ”Å™skĆ© dokumenty",
- "Image (JPEG, TIFF)" : "ObrƔzek (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audio soubor (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "PÅ™Ć­pony, kterĆ© si přejete ignorovat (.java .xml)"
-},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/l10n/cs.json b/l10n/cs.json
deleted file mode 100644
index a91976d..0000000
--- a/l10n/cs.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "JĆ­t do složky",
- "never" : "nikdy",
- "Nextant is not configured yet" : "Nextant jeÅ”tě nenĆ­ nakonfigurovĆ”n",
- "Ping querying your Solr Server" : "DotazovĆ”nĆ­ pingem vaÅ”eho Solr serveru",
- "Verifying Schema integrity" : "OvěřovĆ”nĆ­ integrity schĆ©matu",
- "Test simple text extract query" : "VyzkouÅ”et jednoduchĆ½ dotaz na extrakci textu",
- "Test update document query" : "dotaz zkouŔky aktualizace dokumentu",
- "Test search query" : "VyzkouÅ”et vyhledĆ”vacĆ­ dotaz",
- "Removing the test document" : "OdstraňovĆ”nĆ­ zkuÅ”ebnĆ­ho dokumentu",
- "All test went fine. Saving your configuration" : "VÅ”echny testy proběhly v poÅ™Ć”dku. UklĆ”dĆ”nĆ­ vaÅ”Ć­ konfigurace",
- "Address-format incorrect" : "ChybnĆ½ formĆ”t adresy",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr bÄ›Å¾Ć­ a odpovĆ­dĆ” na ping dotaz",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr neodpovĆ­dĆ” na na ping dotaz (chyba #%1$s)",
- "Schema is fine" : "SchĆ©ma je v poÅ™Ć”dku",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Nepodařilo se ověřit/opravit integritu schĆ©matu (chyba #%1$s)",
- "Text extracted" : "Text extrahovƔn",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrakce selhala. Zkontrolujte konfiguraci vaŔeho Solr serveru (chyba #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Chyba aktualizace pole - nelze najĆ­t pÅÆvodnĆ­ dokument - (chyba #%1$s)",
- "Error during commit (Error #%1$s)" : "Chyba při commitu (chyba #%1$s",
- "Error while updating field (Error #%1$s)" : "Chyba při aktualizaci pole (chyba #%1$s)",
- "Document updated" : "Dokument aktualizovƔn",
- "Found it" : "Nalezeno",
- "Found something, but not what was expected." : "Něco bylo nalezeno, ale ne to, co bylo očekĆ”vĆ”no",
- "Cannot find any document" : "Nelze najĆ­t Å¾Ć”dnĆ½ dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "VyhledĆ”vĆ”nĆ­ selhalo. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)",
- "Test-document deleted" : "ZkuÅ”ebnĆ­ dokument smazĆ”n",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nepodařilo se smazat zkuÅ”ebnĆ­ dokument. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)",
- "Your configuration has been saved" : "VaŔe konfigurace byla uložena",
- "Configuration could not be saved. Please reload this page." : "Konfiguraci se nepodařilo uložit. ProsĆ­m, obnovte tuto strĆ”nku.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (full-textovƩ vyhledƔvƔnƭ)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifikujte adresu vaÅ”eho Solru a jmĆ©no Ć”dra, kterĆ© se mĆ” pouÅ¾Ć­t",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Pokud nemĆ”te bÄ›Å¾Ć­cĆ­ servlet Solr, na wiki najdete prÅÆvodce instalacĆ­.",
- "You can also find more information there about this interface." : "TakĆ© zde mÅÆžete nalĆ©zt dalÅ”Ć­ informace o tomto rozhranĆ­",
- "Saving" : "UklƔdƔnƭ",
- "Settings" : "NastavenĆ­",
- "Nextant version:" : "Nextant verze:",
- "Address of your Solr servlet:" : "Adresa vaŔeho Solr servletu :",
- "Core:" : "JƔdro :",
- "Timeout (in seconds):" : "Čas vyprÅ”enĆ­ požadavku (sekundy) :",
- "Test and Save" : "VyzkouŔet a uložit",
- "Indexing Files" : "IndexovĆ”nĆ­ souborÅÆ",
- "Maximum File Size (Mb):" : "MaximƔlnƭ velikost souboru (Mb) :",
- "Edit your filters" : "Upravte vaŔe filtry",
- "Index Files Tree:" : "Indexovat strom souborÅÆ :",
- "Disable default search from Files" : "ZakĆ”zat vĆ½chozĆ­ hledĆ”nĆ­ ze souborÅÆ",
- "Index File Trash:" : "Odpad indexovƩho souboru:",
- "Index Public Links:" : "Index veřejnĆ½ch odkazÅÆ :",
- "Index Federated Shares:" : "Indexovat sdruženĆ” sdĆ­lenĆ­ :",
- "Index External Storages:" : "ExternĆ­ ĆŗložiÅ”tě indexu :",
- "Index Encrypted Files:" : "Indexovat Å”ifrovanĆ© soubory :",
- "Last index:" : "PoslednĆ­ index :",
- "Indexing Bookmarks" : "IndexovĆ”nĆ­ zĆ”ložek",
- "The App Bookmarks is not installed/enabled." : "Aplikace zĆ”ložky nenĆ­ nainstalovĆ”na/povolena",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Aplikace zĆ”ložky\" je povolena, vaÅ”e zĆ”ložky budou indexovĆ”ny",
- "Checking" : "Kontrola",
- "Nextant Status" : "Stav Nextantu",
- "Resource Level:" : "ƚroveň zdroje :",
- "Higher performance" : "VyÅ”Å”Ć­ vĆ½kon",
- "High performance" : "VysokĆ½ vĆ½kon",
- "Medium performance" : "StřednĆ­ vĆ½kon",
- "Low performance" : "NĆ­zkĆ½ vĆ½kon",
- "Lower performance" : "NiÅ¾Å”Ć­ vĆ½kon",
- "Live Index:" : "ŽivĆ½ index :",
- "Disabled" : "ZakƔzƔno",
- "Using Semaphore" : "PouÅ¾Ć­vĆ” se semafor",
- "Using Database" : "PouÅ¾Ć­vĆ” se databĆ”ze",
- "Minimum Background Index delay:" : "NejmenÅ”Ć­ spožděnĆ­ indexu na pozadĆ­ :",
- "hours" : "hodiny",
- "Maximum Background Index delay:" : "NejvětÅ”Ć­ zpožděnĆ­ indexace na pozadĆ­ :",
- "days" : "dny",
- "Nextcloud Cron:" : "Cron Nextcloudu :",
- "Number of documents:" : "Počet dokumentÅÆ :",
- "Number of segments:" : "Počet segmentÅÆ:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "doporučujeme dělat prvnĆ­ indexovĆ”nĆ­ vaÅ”ich souborÅÆ pomocĆ­ pÅ™Ć­kazu ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Ale mÅÆžete vynutit spuÅ”těnĆ­ jako proces na pozadĆ­.",
- "Force first index as a cronjob" : "Vynutit prvnĆ­ indexovĆ”nĆ­ jako Cron Ćŗlohu",
- "Force index" : "Vynutit index",
- "Indexing is scheduled within the next few hours (Cron)" : "IndexovĆ”nĆ­ je naplĆ”novĆ”no v pÅ™Ć­Å”tĆ­ch několika hodinĆ”ch (Cron)",
- "Indexing in progress" : "IndexovƔnƭ probƭhƔ",
- "Type of files to extract" : "Typ souborÅÆ k extrakci",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextovĆ½ soubor (text, HTML, titulky, zdrojovĆ½ kĆ³d, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "KancelĆ”Å™skĆ© dokumenty",
- "Image (JPEG, TIFF)" : "ObrƔzek (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audio soubor (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "PÅ™Ć­pony, kterĆ© si přejete ignorovat (.java .xml)"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/l10n/de.js b/l10n/de.js
deleted file mode 100644
index cedc9b4..0000000
--- a/l10n/de.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Zum Ordner wechseln",
- "never" : "Niemals",
- "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet",
- "Ping querying your Solr Server" : "Ping sucht Deinen Soir Server",
- "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt",
- "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage",
- "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage",
- "Test search query" : "Teste Suchanfrage",
- "Removing the test document" : "Entferne das Testdokument",
- "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert",
- "Address-format incorrect" : "Adress-Format falsch",
- "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Soir antwortet nicht auf Ping-Anfragen (Fehler #%1$s)",
- "Schema is fine" : "Schema ist in Ordnung",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariet werden (Fehler #%1$s)",
- "Text extracted" : "Text extrahiert",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fe die Kofiguration des Soir-Servers (Fehler #%1$s) ",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ",
- "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s)",
- "Document updated" : "Dokument aktualisiert",
- "Found it" : "Gefunden",
- "Found something, but not what was expected." : "Etwas wurde gefunden, jedoch nicht das erwartete. ",
- "Cannot find any document" : "Kann kein Dokument finden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s)",
- "Test-document deleted" : "Test-Dokument gelƶscht",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Testdokument konnte nicht gelƶscht werden. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s) ",
- "Your configuration has been saved" : "Deine Konfiguration wurde gespeichert",
- "Configuration could not be saved. Please reload this page." : "Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)",
- "Specify the address of your Solr, and the name of the core to use." : "Gebe die Adresse Deines Solr sowie den Namen des Kerns der benutzt werden soll an.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : " 99% match\nWenn Du noch kein Soir-Servlet laufen hast, findest Du Installationsanleitungen im Wiki. ",
- "You can also find more information there about this interface." : "Dort findest Du weitere Informationen zu diesem Interface.",
- "Saving" : "Speichere",
- "Settings" : "Einstellungen",
- "Nextant version:" : "Nextant-Version : ",
- "Address of your Solr servlet:" : "Adresse des Solr-Servlet: ",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ",
- "Test and Save" : "Testen und speichern",
- "Indexing Files" : "Indexiere Dateien",
- "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ",
- "Edit your filters" : "Filter bearbeiten",
- "Index Files Tree:" : " Index des Verzeichnisbaums: ",
- "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien",
- "Index File Trash:" : "Index-Datei Abfall:",
- "Index Public Links:" : " Index der Ɩffentliche Links: ",
- "Index Federated Shares:" : " Index der FederatedShares: ",
- "Index External Storages:" : " Index des externen Speichers: ",
- "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ",
- "Last index:" : " Letzter Index: ",
- "Indexing Bookmarks" : "Indexiere Lesezeichen",
- "The App Bookmarks is not installed/enabled." : "Die Lesezeichen App ist nicht installiert/aktiviert",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Deine Lesezeichen werden indexiert",
- "Checking" : "PrĆ¼fe",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : " Ressourcenniveau: ",
- "Higher performance" : "Hƶhere Leistung",
- "High performance" : "Hohe Leistung",
- "Medium performance" : "Mittlere Leistung",
- "Low performance" : "Niedrige Leistung",
- "Lower performance" : "Sehr niedrige Leistung",
- "Live Index:" : " Live-Index: ",
- "Disabled" : "Deaktiviert",
- "Using Semaphore" : "Verwenden von Semaphore",
- "Using Database" : "Nutze Datenbank",
- "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ",
- "hours" : "Stunden",
- "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ",
- "days" : "Tage",
- "Nextcloud Cron:" : "Nextcloud Cron: ",
- "Number of documents:" : " Anzahl Dokumente: ",
- "Number of segments:" : " Anzahl der Segmente: ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ",
- "However, you can force it to be started as a background process." : "Du kannst jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.",
- "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen",
- "Force index" : "Index erzwingen",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)",
- "Indexing in progress" : "Indexierung lƤuft",
- "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Wuell-Code, ā€¦) ",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Dokumente",
- "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)",
- "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ",
- "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de.json b/l10n/de.json
deleted file mode 100644
index 6807e2c..0000000
--- a/l10n/de.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Zum Ordner wechseln",
- "never" : "Niemals",
- "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet",
- "Ping querying your Solr Server" : "Ping sucht Deinen Soir Server",
- "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt",
- "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage",
- "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage",
- "Test search query" : "Teste Suchanfrage",
- "Removing the test document" : "Entferne das Testdokument",
- "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert",
- "Address-format incorrect" : "Adress-Format falsch",
- "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Soir antwortet nicht auf Ping-Anfragen (Fehler #%1$s)",
- "Schema is fine" : "Schema ist in Ordnung",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariet werden (Fehler #%1$s)",
- "Text extracted" : "Text extrahiert",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fe die Kofiguration des Soir-Servers (Fehler #%1$s) ",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ",
- "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s)",
- "Document updated" : "Dokument aktualisiert",
- "Found it" : "Gefunden",
- "Found something, but not what was expected." : "Etwas wurde gefunden, jedoch nicht das erwartete. ",
- "Cannot find any document" : "Kann kein Dokument finden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s)",
- "Test-document deleted" : "Test-Dokument gelƶscht",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Testdokument konnte nicht gelƶscht werden. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s) ",
- "Your configuration has been saved" : "Deine Konfiguration wurde gespeichert",
- "Configuration could not be saved. Please reload this page." : "Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)",
- "Specify the address of your Solr, and the name of the core to use." : "Gebe die Adresse Deines Solr sowie den Namen des Kerns der benutzt werden soll an.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : " 99% match\nWenn Du noch kein Soir-Servlet laufen hast, findest Du Installationsanleitungen im Wiki. ",
- "You can also find more information there about this interface." : "Dort findest Du weitere Informationen zu diesem Interface.",
- "Saving" : "Speichere",
- "Settings" : "Einstellungen",
- "Nextant version:" : "Nextant-Version : ",
- "Address of your Solr servlet:" : "Adresse des Solr-Servlet: ",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ",
- "Test and Save" : "Testen und speichern",
- "Indexing Files" : "Indexiere Dateien",
- "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ",
- "Edit your filters" : "Filter bearbeiten",
- "Index Files Tree:" : " Index des Verzeichnisbaums: ",
- "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien",
- "Index File Trash:" : "Index-Datei Abfall:",
- "Index Public Links:" : " Index der Ɩffentliche Links: ",
- "Index Federated Shares:" : " Index der FederatedShares: ",
- "Index External Storages:" : " Index des externen Speichers: ",
- "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ",
- "Last index:" : " Letzter Index: ",
- "Indexing Bookmarks" : "Indexiere Lesezeichen",
- "The App Bookmarks is not installed/enabled." : "Die Lesezeichen App ist nicht installiert/aktiviert",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Deine Lesezeichen werden indexiert",
- "Checking" : "PrĆ¼fe",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : " Ressourcenniveau: ",
- "Higher performance" : "Hƶhere Leistung",
- "High performance" : "Hohe Leistung",
- "Medium performance" : "Mittlere Leistung",
- "Low performance" : "Niedrige Leistung",
- "Lower performance" : "Sehr niedrige Leistung",
- "Live Index:" : " Live-Index: ",
- "Disabled" : "Deaktiviert",
- "Using Semaphore" : "Verwenden von Semaphore",
- "Using Database" : "Nutze Datenbank",
- "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ",
- "hours" : "Stunden",
- "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ",
- "days" : "Tage",
- "Nextcloud Cron:" : "Nextcloud Cron: ",
- "Number of documents:" : " Anzahl Dokumente: ",
- "Number of segments:" : " Anzahl der Segmente: ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ",
- "However, you can force it to be started as a background process." : "Du kannst jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.",
- "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen",
- "Force index" : "Index erzwingen",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)",
- "Indexing in progress" : "Indexierung lƤuft",
- "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Wuell-Code, ā€¦) ",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Dokumente",
- "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)",
- "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ",
- "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/de_DE.js b/l10n/de_DE.js
deleted file mode 100644
index d4ac25b..0000000
--- a/l10n/de_DE.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Zum Ordner wechseln",
- "never" : "Niemals",
- "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet",
- "Ping querying your Solr Server" : "Ping sucht Ihren Soir Server",
- "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt",
- "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage",
- "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage",
- "Test search query" : "Teste Suchanfrage",
- "Removing the test document" : "Entferne das Testdokument",
- "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert",
- "Address-format incorrect" : "Adress-Format falsch",
- "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr antwortet nicht auf Ping-Anfragen (Fehler #%1$s)",
- "Schema is fine" : "Schema ist in Ordnung",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariert werden (Fehler #%1$s)",
- "Text extracted" : "Text extrahiert",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fen Sie die Kofiguration Ihres Soir Servers (Fehler #%1$s) ",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ",
- "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s) ",
- "Document updated" : "Dokument aktualisiert",
- "Found it" : "Gefunden",
- "Found something, but not what was expected." : " Etwas wurde gefunden, jedoch nicht das erwartete. ",
- "Cannot find any document" : "Kann kein Dokument finden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s)",
- "Test-document deleted" : " Test-Dokument gelƶscht ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Test-Dokument konnte nicht gelƶscht werden. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s) ",
- "Your configuration has been saved" : "Ihre Konfiguration wurde gespeichert",
- "Configuration could not be saved. Please reload this page." : " Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)",
- "Specify the address of your Solr, and the name of the core to use." : "Gebe Sie die Adresse Ihres Solr sowie den Namen des Kerns der benutzt werden soll an.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Wenn Sie noch kein Soir-Servlet laufen haben, finden Sie Installationsanleitungen im Wiki. ",
- "You can also find more information there about this interface." : "Dort finden Sie weitere Informationen zu diesem Interface.",
- "Saving" : "Speichere",
- "Settings" : "Einstellungen",
- "Nextant version:" : "Nextant-Version : ",
- "Address of your Solr servlet:" : "Adresse Ihres Solr-Servlet: ",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ",
- "Test and Save" : "Testen und speichern",
- "Indexing Files" : "Indexiere Dateien",
- "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ",
- "Edit your filters" : "Filter bearbeiten",
- "Index Files Tree:" : " Index des Verzeichnisbaums: ",
- "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien",
- "Index File Trash:" : "Index-Datei Papierkorb:",
- "Index Public Links:" : " Index der Ɩffentliche Links: ",
- "Index Federated Shares:" : " Index der FederatedShares: ",
- "Index External Storages:" : " Index des externen Speichers: ",
- "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ",
- "Last index:" : " Letzter Index: ",
- "Indexing Bookmarks" : "Indexiere Lesezeichen",
- "The App Bookmarks is not installed/enabled." : "Die Lesezeichen-App ist nicht installiert/aktiviert.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Ihre Lesezeichen werden indexiert",
- "Checking" : "PrĆ¼fe",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : " Ressourcenniveau: ",
- "Higher performance" : "Hƶhere Leistung",
- "High performance" : "Hohe Leistung",
- "Medium performance" : "Mittlere Leistung",
- "Low performance" : "Niedrige Leistung",
- "Lower performance" : "Sehr niedrige Leistung",
- "Live Index:" : " Live-Index: ",
- "Disabled" : "Deaktiviert",
- "Using Semaphore" : "Verwenden von Semaphore",
- "Using Database" : "Nutze Datenbank",
- "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ",
- "hours" : "Stunden",
- "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ",
- "days" : "Tage",
- "Nextcloud Cron:" : " Nextcloud Cron: ",
- "Number of documents:" : " Anzahl Dokumente: ",
- "Number of segments:" : " Anzahl der Segmente: ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ",
- "However, you can force it to be started as a background process." : "Sie kƶnnen jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.",
- "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen",
- "Force index" : "Index erzwingen",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)",
- "Indexing in progress" : "Indexierung lƤuft",
- "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Quell-Code, ā€¦) ",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Dokumente",
- "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)",
- "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ",
- "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de_DE.json b/l10n/de_DE.json
deleted file mode 100644
index 08290a7..0000000
--- a/l10n/de_DE.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Zum Ordner wechseln",
- "never" : "Niemals",
- "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet",
- "Ping querying your Solr Server" : "Ping sucht Ihren Soir Server",
- "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt",
- "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage",
- "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage",
- "Test search query" : "Teste Suchanfrage",
- "Removing the test document" : "Entferne das Testdokument",
- "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert",
- "Address-format incorrect" : "Adress-Format falsch",
- "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr antwortet nicht auf Ping-Anfragen (Fehler #%1$s)",
- "Schema is fine" : "Schema ist in Ordnung",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariert werden (Fehler #%1$s)",
- "Text extracted" : "Text extrahiert",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fen Sie die Kofiguration Ihres Soir Servers (Fehler #%1$s) ",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ",
- "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s) ",
- "Document updated" : "Dokument aktualisiert",
- "Found it" : "Gefunden",
- "Found something, but not what was expected." : " Etwas wurde gefunden, jedoch nicht das erwartete. ",
- "Cannot find any document" : "Kann kein Dokument finden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s)",
- "Test-document deleted" : " Test-Dokument gelƶscht ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Test-Dokument konnte nicht gelƶscht werden. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s) ",
- "Your configuration has been saved" : "Ihre Konfiguration wurde gespeichert",
- "Configuration could not be saved. Please reload this page." : " Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)",
- "Specify the address of your Solr, and the name of the core to use." : "Gebe Sie die Adresse Ihres Solr sowie den Namen des Kerns der benutzt werden soll an.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Wenn Sie noch kein Soir-Servlet laufen haben, finden Sie Installationsanleitungen im Wiki. ",
- "You can also find more information there about this interface." : "Dort finden Sie weitere Informationen zu diesem Interface.",
- "Saving" : "Speichere",
- "Settings" : "Einstellungen",
- "Nextant version:" : "Nextant-Version : ",
- "Address of your Solr servlet:" : "Adresse Ihres Solr-Servlet: ",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ",
- "Test and Save" : "Testen und speichern",
- "Indexing Files" : "Indexiere Dateien",
- "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ",
- "Edit your filters" : "Filter bearbeiten",
- "Index Files Tree:" : " Index des Verzeichnisbaums: ",
- "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien",
- "Index File Trash:" : "Index-Datei Papierkorb:",
- "Index Public Links:" : " Index der Ɩffentliche Links: ",
- "Index Federated Shares:" : " Index der FederatedShares: ",
- "Index External Storages:" : " Index des externen Speichers: ",
- "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ",
- "Last index:" : " Letzter Index: ",
- "Indexing Bookmarks" : "Indexiere Lesezeichen",
- "The App Bookmarks is not installed/enabled." : "Die Lesezeichen-App ist nicht installiert/aktiviert.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Ihre Lesezeichen werden indexiert",
- "Checking" : "PrĆ¼fe",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : " Ressourcenniveau: ",
- "Higher performance" : "Hƶhere Leistung",
- "High performance" : "Hohe Leistung",
- "Medium performance" : "Mittlere Leistung",
- "Low performance" : "Niedrige Leistung",
- "Lower performance" : "Sehr niedrige Leistung",
- "Live Index:" : " Live-Index: ",
- "Disabled" : "Deaktiviert",
- "Using Semaphore" : "Verwenden von Semaphore",
- "Using Database" : "Nutze Datenbank",
- "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ",
- "hours" : "Stunden",
- "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ",
- "days" : "Tage",
- "Nextcloud Cron:" : " Nextcloud Cron: ",
- "Number of documents:" : " Anzahl Dokumente: ",
- "Number of segments:" : " Anzahl der Segmente: ",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ",
- "However, you can force it to be started as a background process." : "Sie kƶnnen jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.",
- "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen",
- "Force index" : "Index erzwingen",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)",
- "Indexing in progress" : "Indexierung lƤuft",
- "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Quell-Code, ā€¦) ",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Dokumente",
- "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)",
- "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ",
- "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/el.js b/l10n/el.js
deleted file mode 100644
index 478c2b4..0000000
--- a/l10n/el.js
+++ /dev/null
@@ -1,91 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "ĪœĪµĻ„Ī±ĪŗĪÆĪ½Ī·ĻƒĪ· ĻƒĻ„ĪæĪ½ Ļ†Ī¬ĪŗĪµĪ»Īæ",
- "never" : "Ļ€ĪæĻ„Ī­",
- "Nextant is not configured yet" : "Ī¤Īæ Nextant Ī“ĪµĪ½ Ī­Ļ‡ĪµĪ¹ ĻĻ…ĪøĪ¼Ī¹ĻƒĻ„ĪµĪÆ Ī±ĪŗĻŒĪ¼Ī·",
- "Ping querying your Solr Server" : "Ī•ĻĻŽĻ„Ī·Ī¼Ī± ping ĻƒĻ„ĪæĪ½ SolrĀ Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® ĻƒĪ±Ļ‚",
- "Verifying Schema integrity" : "Ī•Ļ€Ī±Ī»Ī®ĪøĪµĻ…ĻƒĪ· Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ī“Ī¹Ī¬Ļ„Ī±Ī¾Ī·Ļ‚",
- "Test simple text extract query" : "Ī”ĪæĪŗĪ¹Ī¼Ī¬ĻƒĻ„Īµ Ī­Ī½Ī± Ī±Ļ€Ī»ĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…",
- "Test update document query" : "ĪˆĪ»ĪµĪ³Ļ‡ĪæĻ‚ ĪµĻĻ‰Ļ„Ī®Ī¼Ī±Ļ„ĪæĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ… ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚",
- "Test search query" : "Ī”ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚",
- "Removing the test document" : "Ī‘Ļ†Ī±ĪÆĻĪµĻƒĪ· Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "All test went fine. Saving your configuration" : "ĪŒĪ»ĪæĪ¹ ĪæĪ¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĪ¹ Ļ€Ī®Ī³Ī±Ī½ ĪŗĪ±Ī»Ī¬. Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ļ„Ļ‰Ī½ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĻ‰Ī½",
- "Address-format incorrect" : "Ī•ĻƒĻ†Ī±Ī»Ī¼Ī­Ī½Ī· Ī¼ĪæĻĻ†Ī® Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ·Ļ‚",
- "Apache Solr is up, running and responding to ping query" : "ĪŸ Apache Solr ĪµĪÆĪ½Ī±Ī¹ ĪµĪ½ĪµĻĪ³ĻŒĻ‚, ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ±Ī¹ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "ĪŸ Apache Solr Ī“ĪµĪ½ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Schema is fine" : "Ī¤Īæ ĻƒĻ‡Ī®Ī¼Ī± ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ±Ī»ĻŒ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻ€Ī¹ĪŗĻĻĻ‰ĻƒĪ·Ļ‚/ĪµĻ€Ī¹ĻƒĪŗĪµĻ…Ī®Ļ‚ Ļ„Ī·Ļ‚ Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ļ„ĪæĻ… ĻƒĻ‡Ī®Ī¼Ī±Ļ„ĪæĻ‚ (Ī£Ļ†Ī¬Ī»Ī¼Ī± # %1$s)",
- "Text extracted" : "Ī•Ī¾Ī±Ī³Ļ‰Ī³Ī® ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚ Ļ€ĪµĪ“ĪÆĪæĻ… - Ī¤Īæ Ļ€ĻĻ‰Ļ„ĻŒĻ„Ļ…Ļ€Īæ Ī­Ī³Ī³ĻĪ±Ļ†Īæ Ī“ĪµĪ½ Ī¼Ļ€ĪæĻĪµĪÆ Ī½Ī± Ī²ĻĪµĪøĪµĪÆ - (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error during commit (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ Ļ…Ļ€ĪæĪ²ĪæĪ»Ī® (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error while updating field (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· Ļ€ĪµĪ“ĪÆĪæĻ… (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Document updated" : "Ī•Ī½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "Found it" : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ",
- "Found something, but not what was expected." : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ ĪŗĪ¬Ļ„Ī¹, Ī±Ī»Ī»Ī¬ ĻŒĻ‡Ī¹ Ī±Ļ…Ļ„ĻŒ Ļ€ĪæĻ… Ī±Ī½Ī±Ī¼ĪµĪ½ĻŒĻ„Ī±Ī½.",
- "Cannot find any document" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻƒĪ·Ļ‚ ĪæĻ€ĪæĪ¹ĪæĻ…Ī“Ī®Ļ€ĪæĻ„Īµ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī— Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€Ī­Ļ„Ļ…Ļ‡Īµ. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī¹Ļ‚ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ Ļ„ĪæĻ… Solr ĪµĪ¾Ļ…Ļ€Ī·ĻĪµĻ„Ī·Ļ„Ī® ĻƒĪ±Ļ‚. (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Test-document deleted" : "ĪˆĪ³Ī³ĻĪ±Ļ†Īæ Ī“ĪæĪŗĪ¹Ī¼Ī®Ļ‚ Ī“Ī¹Ī±Ī³ĻĪ¬Ļ†Ī·ĪŗĪµ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± Ī“Ī¹Ī±Ī³ĻĪ±Ļ†Ī®Ļ‚ Ļ„ĪæĻ… Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Your configuration has been saved" : "ĪŸĪ¹ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ ĻƒĪ±Ļ‚ Ī±Ļ€ĪæĪøĪ·ĪŗĪµĻĻ„Ī·ĪŗĪ±Ī½",
- "Configuration could not be saved. Please reload this page." : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ·Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĻ€Ī±Ī½Ī±Ļ†ĪæĻĻ„ĻŽĻƒĻ„Īµ Ī±Ļ…Ļ„Ī® Ļ„Ī· ĻƒĪµĪ»ĪÆĪ“Ī±.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ļ€Ī»Ī®ĻĪæĻ…Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…)",
- "Specify the address of your Solr, and the name of the core to use." : "Ī ĻĪæĻƒĪ“Ī¹ĪæĻĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚, ĪŗĪ±Ī¹ Ļ„Īæ ĪæĪ½ĪæĪ¼Ī± Ļ„ĪæĻ… Ļ€Ļ…ĻĪ®Ī½Ī± Ļ€ĻĪæĻ‚ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ·. ",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ī‘Ī½ Ī“ĪµĪ½ ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ¬Ļ€ĪæĪ¹Īæ Solr servlet, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ„ĪæĻ…Ļ‚ ĪæĪ“Ī·Ī³ĪæĻĻ‚ ĪµĪ³ĪŗĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ·Ļ‚ ĻƒĻ„Īæ wiki. ",
- "You can also find more information there about this interface." : "ĪœĻ€ĪæĻĪµĪÆĻ„Īµ ĪµĻ€ĪÆĻƒĪ·Ļ‚ ĪµĪŗĪµĪÆ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ€ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪµĻ‚ Ļ€Ī»Ī·ĻĪæĻ†ĪæĻĪÆĪµĻ‚ Ī³Ī¹Ī± Ī±Ļ…Ļ„Ī® Ļ„Ī·Ī½ Ī“Ī¹ĪµĻ€Ī±Ļ†Ī®.",
- "Saving" : "Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·",
- "Settings" : "Ī”Ļ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚",
- "Nextant version:" : "ĪˆĪŗĪ“ĪæĻƒĪ· Nextant:",
- "Address of your Solr servlet:" : "Ī”Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… servlet Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚:",
- "Core:" : "Ī Ļ…ĻĪ®Ī½Ī±Ļ‚:",
- "Timeout (in seconds):" : "Ī§ĻĪæĪ½Ī¹ĪŗĻŒ ĻŒĻĪ¹Īæ (Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±):",
- "Test and Save" : "Ī”ĪæĪŗĪ¹Ī¼Ī® ĪŗĪ±Ī¹ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·",
- "Indexing Files" : "ĪšĪ±Ļ„Ī±Ī»ĪæĪ³ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī±ĻĻ‡ĪµĪÆĻ‰Ī½",
- "Maximum File Size (Mb):" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Īæ Ī¼Ī­Ī³ĪµĪøĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĪæĻ… (Mb):",
- "Edit your filters" : "Ī•Ļ€ĪµĪ¾ĪµĻĪ³Ī±ĻƒĪÆĪ± Ļ„Ļ‰Ī½ Ļ†ĪÆĪ»Ļ„ĻĻ‰Ī½ ĻƒĪ±Ļ‚",
- "Index Files Tree:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī¹ĪµĻĪ±ĻĻ‡ĪÆĪ±Ļ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Disable default search from Files" : "Ī‘Ļ€ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹ĪµĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĪæĪµĻ€Ī¹Ī»ĪµĪ³Ī¼Ī­Ī½Ī· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€ĻŒ Ļ„Ī± Ī‘ĻĻ‡ĪµĪÆĪ±",
- "Index File Trash:" : "Ī•Ļ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ī‘ĻĻ‡ĪµĪÆĪæĻ… Ī‘Ļ€ĪæĻĻĪ¹Ī¼Ī¬Ļ„Ļ‰Ī½:",
- "Index Public Links:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī“Ī·Ī¼ĪæĻƒĪÆĻ‰Ī½ ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼Ļ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Index Federated Shares:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ„Ļ‰Ī½ federated ĪŗĪæĪ¹Ī½ĪæĻ‡ĻĪ®ĻƒĻ„Ļ‰Ī½:",
- "Index External Storages:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪµĪ¾Ļ‰Ļ„ĪµĻĪ¹ĪŗĻŽĪ½ Ļ‡ĻŽĻĻ‰Ī½ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Index Encrypted Files:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪŗĻĻ…Ļ€Ļ„ĪæĪ³ĻĪ±Ļ†Ī·Ī¼Ī­Ī½Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Last index:" : "Ī¤ĪµĪ»ĪµĻ…Ļ„Ī±ĪÆĪæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Indexing Bookmarks" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪ¹ĪŗĻ„ĻŽĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ",
- "The App Bookmarks is not installed/enabled." : "Ī— ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks Ī“ĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĪµĪ³ĪŗĪ±Ļ„ĪµĻƒĻ„Ī·Ī¼Ī­Ī½Ī·/ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī·Ī¼Ī­Ī½Ī·.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Ī— \"ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks\" ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī®ĪøĪ·ĪŗĪµ, ĪæĪ¹ ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪÆĪŗĻ„ĪµĻ‚ ĪøĪ± Ļ€ĻĪæĻƒĻ„ĪµĪøĪæĻĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ.",
- "Checking" : "Ī“ĪÆĪ½ĪµĻ„Ī±Ī¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĻ‚ ",
- "Nextant Status" : "ĪšĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ· Nextant ",
- "Resource Level:" : "Ī•Ļ€ĪÆĻ€ĪµĪ“Īæ Ļ€ĻŒĻĻ‰Ī½:",
- "Higher performance" : "ĪœĪµĪ³Ī±Ī»ĻĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "High performance" : "ĪœĪµĪ³Ī¬Ī»Ī· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ· ",
- "Medium performance" : "ĪœĪµĻƒĪ±ĪÆĪ± Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Low performance" : "Ī§Ī±Ī¼Ī·Ī»Ī® Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Lower performance" : "Ī§Ī±Ī¼Ī·Ī»ĻŒĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Disabled" : "Ī‘Ī½ĪµĪ½ĪµĻĪ³ĻŒ",
- "Using Semaphore" : "Ī§ĻĪ®ĻƒĪ·Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī£Ī·Ī¼Ī±Ļ„ĪæĻ†ĻŒĻĻ‰Ī½ ",
- "Using Database" : "Ī§ĻĪ®ĻƒĪ· Ī²Ī¬ĻƒĪ·Ļ‚ Ī“ĪµĪ“ĪæĪ¼Ī­Ī½Ļ‰Ī½",
- "Minimum Background Index delay:" : "Ī•Ī»Ī¬Ļ‡Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:",
- "hours" : "ĻŽĻĪµĻ‚",
- "Maximum Background Index delay:" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:",
- "days" : "Ī·Ī¼Ī­ĻĪµĻ‚",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†Ļ‰Ī½:",
- "Number of segments:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ Ļ„Ī¼Ī·Ī¼Ī¬Ļ„Ļ‰Ī½:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "ĻƒĻ…Ī½ĪÆĻƒĻ„Ī±Ļ„Ī±Ī¹ Ī½Ī± ĪŗĪ¬Ī½ĪµĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĻŽĻ„Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· Ļ„Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĪ±Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪ¹ĻŽĪ½Ļ„Ī±Ļ‚ Ļ„Ī·Ī½ ĪµĪ½Ļ„ĪæĪ»Ī® ./occ nextant:indexĀ ",
- "However, you can force it to be started as a background process." : "Ī£Īµ ĪŗĪ¬ĪøĪµ Ļ€ĪµĻĪÆĻ€Ļ„Ļ‰ĻƒĪ·, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ļ„Īæ ĪµĪ¾Ī±Ī½Ī±Ī³ĪŗĪ¬ĻƒĪµĻ„Īµ Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī¬ ĻƒĪ±Ī½ Ī“Ī¹ĪµĻĪ³Ī±ĻƒĪÆĪ± ĻƒĻ„Īæ Ļ€Ī±ĻĪ±ĻƒĪŗĪ®Ī½Ī¹Īæ.",
- "Force first index as a cronjob" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼ĻŒĻ‚ Ļ€ĻĻŽĻ„ĪæĻ… ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ‰Ļ‚ cronjob",
- "Force index" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼Ī­Ī½Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ",
- "Indexing is scheduled within the next few hours (Cron)" : "Ī— Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ ĪµĪÆĪ½Ī±Ī¹ Ļ€ĻĪæĪ³ĻĪ±Ī¼Ī¼Ī±Ļ„Ī¹ĻƒĪ¼Ī­Ī½Ī· Ī³Ī¹Ī± Ļ„Ī¹Ļ‚ ĪµĻ€ĻŒĪ¼ĪµĪ½ĪµĻ‚ Ī»ĪÆĪ³ĪµĻ‚ ĻŽĻĪµĻ‚ (Cron)",
- "Indexing in progress" : "Ī•Ļ…ĻĪµĻ„Ī·ĻĪ¹ĪæĻ€ĪæĪÆĪ·ĻƒĪ· ĻƒĪµ ĪµĪ¾Ī­Ī»Ī¹Ī¾Ī·",
- "Type of files to extract" : "Ī¤ĻĻ€ĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ Ī³Ī¹Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ī‘ĻĻ‡ĪµĪÆĪæ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ… (ĪŗĪµĪÆĪ¼ĪµĪ½Īæ, html, Ļ…Ļ€ĻŒĻ„Ī¹Ļ„Ī»ĪæĪ¹, Ļ€Ī·Ī³Ī±ĪÆĪæĻ‚ ĪŗĻŽĪ“Ī¹ĪŗĪ±Ļ‚, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "ĪˆĪ³Ī³ĻĪ±Ļ†Ī± Ī³ĻĪ±Ļ†ĪµĪÆĪæĻ…",
- "Image (JPEG, TIFF)" : "Ī•Ī¹ĪŗĻŒĪ½Ī± (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ī‘ĻĻ‡ĪµĪÆĪæ Ī®Ļ‡ĪæĻ… (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Ī•Ļ€ĪµĪŗĻ„Ī¬ĻƒĪµĪ¹Ļ‚ Ļ€ĪæĻ… ĪøĪ­Ī»ĪµĻ„Īµ Ī½Ī± Ī±Ī³Ī½ĪæĪæĻĪ½Ļ„Ī±Ī¹ (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/el.json b/l10n/el.json
deleted file mode 100644
index 8fddd62..0000000
--- a/l10n/el.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{ "translations": {
- "Go to folder" : "ĪœĪµĻ„Ī±ĪŗĪÆĪ½Ī·ĻƒĪ· ĻƒĻ„ĪæĪ½ Ļ†Ī¬ĪŗĪµĪ»Īæ",
- "never" : "Ļ€ĪæĻ„Ī­",
- "Nextant is not configured yet" : "Ī¤Īæ Nextant Ī“ĪµĪ½ Ī­Ļ‡ĪµĪ¹ ĻĻ…ĪøĪ¼Ī¹ĻƒĻ„ĪµĪÆ Ī±ĪŗĻŒĪ¼Ī·",
- "Ping querying your Solr Server" : "Ī•ĻĻŽĻ„Ī·Ī¼Ī± ping ĻƒĻ„ĪæĪ½ SolrĀ Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® ĻƒĪ±Ļ‚",
- "Verifying Schema integrity" : "Ī•Ļ€Ī±Ī»Ī®ĪøĪµĻ…ĻƒĪ· Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ī“Ī¹Ī¬Ļ„Ī±Ī¾Ī·Ļ‚",
- "Test simple text extract query" : "Ī”ĪæĪŗĪ¹Ī¼Ī¬ĻƒĻ„Īµ Ī­Ī½Ī± Ī±Ļ€Ī»ĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…",
- "Test update document query" : "ĪˆĪ»ĪµĪ³Ļ‡ĪæĻ‚ ĪµĻĻ‰Ļ„Ī®Ī¼Ī±Ļ„ĪæĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ… ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚",
- "Test search query" : "Ī”ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚",
- "Removing the test document" : "Ī‘Ļ†Ī±ĪÆĻĪµĻƒĪ· Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "All test went fine. Saving your configuration" : "ĪŒĪ»ĪæĪ¹ ĪæĪ¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĪ¹ Ļ€Ī®Ī³Ī±Ī½ ĪŗĪ±Ī»Ī¬. Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ļ„Ļ‰Ī½ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĻ‰Ī½",
- "Address-format incorrect" : "Ī•ĻƒĻ†Ī±Ī»Ī¼Ī­Ī½Ī· Ī¼ĪæĻĻ†Ī® Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ·Ļ‚",
- "Apache Solr is up, running and responding to ping query" : "ĪŸ Apache Solr ĪµĪÆĪ½Ī±Ī¹ ĪµĪ½ĪµĻĪ³ĻŒĻ‚, ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ±Ī¹ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "ĪŸ Apache Solr Ī“ĪµĪ½ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Schema is fine" : "Ī¤Īæ ĻƒĻ‡Ī®Ī¼Ī± ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ±Ī»ĻŒ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻ€Ī¹ĪŗĻĻĻ‰ĻƒĪ·Ļ‚/ĪµĻ€Ī¹ĻƒĪŗĪµĻ…Ī®Ļ‚ Ļ„Ī·Ļ‚ Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ļ„ĪæĻ… ĻƒĻ‡Ī®Ī¼Ī±Ļ„ĪæĻ‚ (Ī£Ļ†Ī¬Ī»Ī¼Ī± # %1$s)",
- "Text extracted" : "Ī•Ī¾Ī±Ī³Ļ‰Ī³Ī® ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚ Ļ€ĪµĪ“ĪÆĪæĻ… - Ī¤Īæ Ļ€ĻĻ‰Ļ„ĻŒĻ„Ļ…Ļ€Īæ Ī­Ī³Ī³ĻĪ±Ļ†Īæ Ī“ĪµĪ½ Ī¼Ļ€ĪæĻĪµĪÆ Ī½Ī± Ī²ĻĪµĪøĪµĪÆ - (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error during commit (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ Ļ…Ļ€ĪæĪ²ĪæĪ»Ī® (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Error while updating field (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· Ļ€ĪµĪ“ĪÆĪæĻ… (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Document updated" : "Ī•Ī½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "Found it" : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ",
- "Found something, but not what was expected." : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ ĪŗĪ¬Ļ„Ī¹, Ī±Ī»Ī»Ī¬ ĻŒĻ‡Ī¹ Ī±Ļ…Ļ„ĻŒ Ļ€ĪæĻ… Ī±Ī½Ī±Ī¼ĪµĪ½ĻŒĻ„Ī±Ī½.",
- "Cannot find any document" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻƒĪ·Ļ‚ ĪæĻ€ĪæĪ¹ĪæĻ…Ī“Ī®Ļ€ĪæĻ„Īµ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī— Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€Ī­Ļ„Ļ…Ļ‡Īµ. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī¹Ļ‚ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ Ļ„ĪæĻ… Solr ĪµĪ¾Ļ…Ļ€Ī·ĻĪµĻ„Ī·Ļ„Ī® ĻƒĪ±Ļ‚. (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Test-document deleted" : "ĪˆĪ³Ī³ĻĪ±Ļ†Īæ Ī“ĪæĪŗĪ¹Ī¼Ī®Ļ‚ Ī“Ī¹Ī±Ī³ĻĪ¬Ļ†Ī·ĪŗĪµ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± Ī“Ī¹Ī±Ī³ĻĪ±Ļ†Ī®Ļ‚ Ļ„ĪæĻ… Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)",
- "Your configuration has been saved" : "ĪŸĪ¹ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ ĻƒĪ±Ļ‚ Ī±Ļ€ĪæĪøĪ·ĪŗĪµĻĻ„Ī·ĪŗĪ±Ī½",
- "Configuration could not be saved. Please reload this page." : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ·Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĻ€Ī±Ī½Ī±Ļ†ĪæĻĻ„ĻŽĻƒĻ„Īµ Ī±Ļ…Ļ„Ī® Ļ„Ī· ĻƒĪµĪ»ĪÆĪ“Ī±.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ļ€Ī»Ī®ĻĪæĻ…Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…)",
- "Specify the address of your Solr, and the name of the core to use." : "Ī ĻĪæĻƒĪ“Ī¹ĪæĻĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚, ĪŗĪ±Ī¹ Ļ„Īæ ĪæĪ½ĪæĪ¼Ī± Ļ„ĪæĻ… Ļ€Ļ…ĻĪ®Ī½Ī± Ļ€ĻĪæĻ‚ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ·. ",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ī‘Ī½ Ī“ĪµĪ½ ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ¬Ļ€ĪæĪ¹Īæ Solr servlet, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ„ĪæĻ…Ļ‚ ĪæĪ“Ī·Ī³ĪæĻĻ‚ ĪµĪ³ĪŗĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ·Ļ‚ ĻƒĻ„Īæ wiki. ",
- "You can also find more information there about this interface." : "ĪœĻ€ĪæĻĪµĪÆĻ„Īµ ĪµĻ€ĪÆĻƒĪ·Ļ‚ ĪµĪŗĪµĪÆ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ€ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪµĻ‚ Ļ€Ī»Ī·ĻĪæĻ†ĪæĻĪÆĪµĻ‚ Ī³Ī¹Ī± Ī±Ļ…Ļ„Ī® Ļ„Ī·Ī½ Ī“Ī¹ĪµĻ€Ī±Ļ†Ī®.",
- "Saving" : "Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·",
- "Settings" : "Ī”Ļ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚",
- "Nextant version:" : "ĪˆĪŗĪ“ĪæĻƒĪ· Nextant:",
- "Address of your Solr servlet:" : "Ī”Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… servlet Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚:",
- "Core:" : "Ī Ļ…ĻĪ®Ī½Ī±Ļ‚:",
- "Timeout (in seconds):" : "Ī§ĻĪæĪ½Ī¹ĪŗĻŒ ĻŒĻĪ¹Īæ (Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±):",
- "Test and Save" : "Ī”ĪæĪŗĪ¹Ī¼Ī® ĪŗĪ±Ī¹ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·",
- "Indexing Files" : "ĪšĪ±Ļ„Ī±Ī»ĪæĪ³ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī±ĻĻ‡ĪµĪÆĻ‰Ī½",
- "Maximum File Size (Mb):" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Īæ Ī¼Ī­Ī³ĪµĪøĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĪæĻ… (Mb):",
- "Edit your filters" : "Ī•Ļ€ĪµĪ¾ĪµĻĪ³Ī±ĻƒĪÆĪ± Ļ„Ļ‰Ī½ Ļ†ĪÆĪ»Ļ„ĻĻ‰Ī½ ĻƒĪ±Ļ‚",
- "Index Files Tree:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī¹ĪµĻĪ±ĻĻ‡ĪÆĪ±Ļ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Disable default search from Files" : "Ī‘Ļ€ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹ĪµĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĪæĪµĻ€Ī¹Ī»ĪµĪ³Ī¼Ī­Ī½Ī· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€ĻŒ Ļ„Ī± Ī‘ĻĻ‡ĪµĪÆĪ±",
- "Index File Trash:" : "Ī•Ļ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ī‘ĻĻ‡ĪµĪÆĪæĻ… Ī‘Ļ€ĪæĻĻĪ¹Ī¼Ī¬Ļ„Ļ‰Ī½:",
- "Index Public Links:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī“Ī·Ī¼ĪæĻƒĪÆĻ‰Ī½ ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼Ļ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Index Federated Shares:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ„Ļ‰Ī½ federated ĪŗĪæĪ¹Ī½ĪæĻ‡ĻĪ®ĻƒĻ„Ļ‰Ī½:",
- "Index External Storages:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪµĪ¾Ļ‰Ļ„ĪµĻĪ¹ĪŗĻŽĪ½ Ļ‡ĻŽĻĻ‰Ī½ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Index Encrypted Files:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪŗĻĻ…Ļ€Ļ„ĪæĪ³ĻĪ±Ļ†Ī·Ī¼Ī­Ī½Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Last index:" : "Ī¤ĪµĪ»ĪµĻ…Ļ„Ī±ĪÆĪæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:",
- "Indexing Bookmarks" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪ¹ĪŗĻ„ĻŽĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ",
- "The App Bookmarks is not installed/enabled." : "Ī— ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks Ī“ĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĪµĪ³ĪŗĪ±Ļ„ĪµĻƒĻ„Ī·Ī¼Ī­Ī½Ī·/ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī·Ī¼Ī­Ī½Ī·.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Ī— \"ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks\" ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī®ĪøĪ·ĪŗĪµ, ĪæĪ¹ ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪÆĪŗĻ„ĪµĻ‚ ĪøĪ± Ļ€ĻĪæĻƒĻ„ĪµĪøĪæĻĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ.",
- "Checking" : "Ī“ĪÆĪ½ĪµĻ„Ī±Ī¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĻ‚ ",
- "Nextant Status" : "ĪšĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ· Nextant ",
- "Resource Level:" : "Ī•Ļ€ĪÆĻ€ĪµĪ“Īæ Ļ€ĻŒĻĻ‰Ī½:",
- "Higher performance" : "ĪœĪµĪ³Ī±Ī»ĻĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "High performance" : "ĪœĪµĪ³Ī¬Ī»Ī· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ· ",
- "Medium performance" : "ĪœĪµĻƒĪ±ĪÆĪ± Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Low performance" : "Ī§Ī±Ī¼Ī·Ī»Ī® Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Lower performance" : "Ī§Ī±Ī¼Ī·Ī»ĻŒĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·",
- "Disabled" : "Ī‘Ī½ĪµĪ½ĪµĻĪ³ĻŒ",
- "Using Semaphore" : "Ī§ĻĪ®ĻƒĪ·Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī£Ī·Ī¼Ī±Ļ„ĪæĻ†ĻŒĻĻ‰Ī½ ",
- "Using Database" : "Ī§ĻĪ®ĻƒĪ· Ī²Ī¬ĻƒĪ·Ļ‚ Ī“ĪµĪ“ĪæĪ¼Ī­Ī½Ļ‰Ī½",
- "Minimum Background Index delay:" : "Ī•Ī»Ī¬Ļ‡Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:",
- "hours" : "ĻŽĻĪµĻ‚",
- "Maximum Background Index delay:" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:",
- "days" : "Ī·Ī¼Ī­ĻĪµĻ‚",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†Ļ‰Ī½:",
- "Number of segments:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ Ļ„Ī¼Ī·Ī¼Ī¬Ļ„Ļ‰Ī½:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "ĻƒĻ…Ī½ĪÆĻƒĻ„Ī±Ļ„Ī±Ī¹ Ī½Ī± ĪŗĪ¬Ī½ĪµĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĻŽĻ„Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· Ļ„Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĪ±Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪ¹ĻŽĪ½Ļ„Ī±Ļ‚ Ļ„Ī·Ī½ ĪµĪ½Ļ„ĪæĪ»Ī® ./occ nextant:indexĀ ",
- "However, you can force it to be started as a background process." : "Ī£Īµ ĪŗĪ¬ĪøĪµ Ļ€ĪµĻĪÆĻ€Ļ„Ļ‰ĻƒĪ·, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ļ„Īæ ĪµĪ¾Ī±Ī½Ī±Ī³ĪŗĪ¬ĻƒĪµĻ„Īµ Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī¬ ĻƒĪ±Ī½ Ī“Ī¹ĪµĻĪ³Ī±ĻƒĪÆĪ± ĻƒĻ„Īæ Ļ€Ī±ĻĪ±ĻƒĪŗĪ®Ī½Ī¹Īæ.",
- "Force first index as a cronjob" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼ĻŒĻ‚ Ļ€ĻĻŽĻ„ĪæĻ… ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ‰Ļ‚ cronjob",
- "Force index" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼Ī­Ī½Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ",
- "Indexing is scheduled within the next few hours (Cron)" : "Ī— Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ ĪµĪÆĪ½Ī±Ī¹ Ļ€ĻĪæĪ³ĻĪ±Ī¼Ī¼Ī±Ļ„Ī¹ĻƒĪ¼Ī­Ī½Ī· Ī³Ī¹Ī± Ļ„Ī¹Ļ‚ ĪµĻ€ĻŒĪ¼ĪµĪ½ĪµĻ‚ Ī»ĪÆĪ³ĪµĻ‚ ĻŽĻĪµĻ‚ (Cron)",
- "Indexing in progress" : "Ī•Ļ…ĻĪµĻ„Ī·ĻĪ¹ĪæĻ€ĪæĪÆĪ·ĻƒĪ· ĻƒĪµ ĪµĪ¾Ī­Ī»Ī¹Ī¾Ī·",
- "Type of files to extract" : "Ī¤ĻĻ€ĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ Ī³Ī¹Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ī‘ĻĻ‡ĪµĪÆĪæ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ… (ĪŗĪµĪÆĪ¼ĪµĪ½Īæ, html, Ļ…Ļ€ĻŒĻ„Ī¹Ļ„Ī»ĪæĪ¹, Ļ€Ī·Ī³Ī±ĪÆĪæĻ‚ ĪŗĻŽĪ“Ī¹ĪŗĪ±Ļ‚, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "ĪˆĪ³Ī³ĻĪ±Ļ†Ī± Ī³ĻĪ±Ļ†ĪµĪÆĪæĻ…",
- "Image (JPEG, TIFF)" : "Ī•Ī¹ĪŗĻŒĪ½Ī± (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ī‘ĻĻ‡ĪµĪÆĪæ Ī®Ļ‡ĪæĻ… (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Ī•Ļ€ĪµĪŗĻ„Ī¬ĻƒĪµĪ¹Ļ‚ Ļ€ĪæĻ… ĪøĪ­Ī»ĪµĻ„Īµ Ī½Ī± Ī±Ī³Ī½ĪæĪæĻĪ½Ļ„Ī±Ī¹ (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/en_GB.js b/l10n/en_GB.js
deleted file mode 100644
index a83a1cb..0000000
--- a/l10n/en_GB.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Go to folder",
- "never" : "never",
- "Nextant is not configured yet" : "Nextant is not configured yet",
- "Ping querying your Solr Server" : "Ping querying your Solr Server",
- "Verifying Schema integrity" : "Verifying Schema integrity",
- "Test simple text extract query" : "Test simple text extract query",
- "Test update document query" : "Test update document query",
- "Test search query" : "Test search query",
- "Removing the test document" : "Removing the test document",
- "All test went fine. Saving your configuration" : "All test went fine. Saving your configuration",
- "Address-format incorrect" : "Address-format incorrect",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr is up, running and responding to ping query",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr is not responding to ping query (Error #%1$s)",
- "Schema is fine" : "Schema is fine",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Unable to verify/fix schema integrity (Error #%1$s)",
- "Text extracted" : "Text extracted",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Error updating field - Can't find original document - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error during commit (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Error while updating field (Error #%1$s)",
- "Document updated" : "Document updated",
- "Found it" : "Found it",
- "Found something, but not what was expected." : "Found something, but not what was expected.",
- "Cannot find any document" : "Cannot find any document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Test-document deleted" : "Test-document deleted",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)",
- "Your configuration has been saved" : "Your configuration has been saved",
- "Configuration could not be saved. Please reload this page." : "Configuration could not be saved. Please reload this page.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Specify the address of your Solr, and the name of the core to use.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "If you do not have a Solr servlet running, installation-guides can be found on the wiki.",
- "You can also find more information there about this interface." : "You can also find more information there about this interface.",
- "Saving" : "Saving",
- "Settings" : "Settings",
- "Nextant version:" : "Nextant version:",
- "Address of your Solr servlet:" : "Address of your Solr servlet:",
- "Core:" : "Core:",
- "Timeout (in seconds):" : "Timeout (in seconds):",
- "Test and Save" : "Test and Save",
- "Indexing Files" : "Indexing Files",
- "Maximum File Size (Mb):" : "Maximum File Size (Mb):",
- "Edit your filters" : "Edit your filters",
- "Index Files Tree:" : "Index Files Tree:",
- "Disable default search from Files" : "Disable default search from Files",
- "Index File Trash:" : "Index File Trash:",
- "Index Public Links:" : "Index Public Links:",
- "Index Federated Shares:" : "Index Federated Shares:",
- "Index External Storages:" : "Index External Storages:",
- "Index Encrypted Files:" : "Index Encrypted Files:",
- "Last index:" : "Last index:",
- "Indexing Bookmarks" : "Indexing Bookmarks",
- "The App Bookmarks is not installed/enabled." : "The App Bookmarks is not installed/enabled.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bookmarks\" enabled, your bookmarks will be indexed.",
- "Checking" : "Checking",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Resource Level:",
- "Higher performance" : "Higher performance",
- "High performance" : "High performance",
- "Medium performance" : "Medium performance",
- "Low performance" : "Low performance",
- "Lower performance" : "Lower performance",
- "Live Index:" : "Live Index:",
- "Disabled" : "Disabled",
- "Using Semaphore" : "Using Semaphore",
- "Using Database" : "Using Database",
- "Minimum Background Index delay:" : "Minimum Background Index delay:",
- "hours" : "hours",
- "Maximum Background Index delay:" : "Maximum Background Index delay:",
- "days" : "days",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Number of documents:",
- "Number of segments:" : "Number of segments:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "it is recommended to do the very first indexing of your files using the ./occ nextant:index command.",
- "However, you can force it to be started as a background process." : "However, you can force it to be started as a background process.",
- "Force first index as a cronjob" : "Force first index as a cronjob",
- "Force index" : "Force index",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexing is scheduled within the next few hours (Cron)",
- "Indexing in progress" : "Indexing in progress",
- "Type of files to extract" : "Type of files to extract",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Text File (Text, HTML, Subtitles, Source Codeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Documents",
- "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audio File (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions you wish to ignore (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/en_GB.json b/l10n/en_GB.json
deleted file mode 100644
index ae23c54..0000000
--- a/l10n/en_GB.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Go to folder",
- "never" : "never",
- "Nextant is not configured yet" : "Nextant is not configured yet",
- "Ping querying your Solr Server" : "Ping querying your Solr Server",
- "Verifying Schema integrity" : "Verifying Schema integrity",
- "Test simple text extract query" : "Test simple text extract query",
- "Test update document query" : "Test update document query",
- "Test search query" : "Test search query",
- "Removing the test document" : "Removing the test document",
- "All test went fine. Saving your configuration" : "All test went fine. Saving your configuration",
- "Address-format incorrect" : "Address-format incorrect",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr is up, running and responding to ping query",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr is not responding to ping query (Error #%1$s)",
- "Schema is fine" : "Schema is fine",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Unable to verify/fix schema integrity (Error #%1$s)",
- "Text extracted" : "Text extracted",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Error updating field - Can't find original document - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error during commit (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Error while updating field (Error #%1$s)",
- "Document updated" : "Document updated",
- "Found it" : "Found it",
- "Found something, but not what was expected." : "Found something, but not what was expected.",
- "Cannot find any document" : "Cannot find any document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Test-document deleted" : "Test-document deleted",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)",
- "Your configuration has been saved" : "Your configuration has been saved",
- "Configuration could not be saved. Please reload this page." : "Configuration could not be saved. Please reload this page.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Specify the address of your Solr, and the name of the core to use.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "If you do not have a Solr servlet running, installation-guides can be found on the wiki.",
- "You can also find more information there about this interface." : "You can also find more information there about this interface.",
- "Saving" : "Saving",
- "Settings" : "Settings",
- "Nextant version:" : "Nextant version:",
- "Address of your Solr servlet:" : "Address of your Solr servlet:",
- "Core:" : "Core:",
- "Timeout (in seconds):" : "Timeout (in seconds):",
- "Test and Save" : "Test and Save",
- "Indexing Files" : "Indexing Files",
- "Maximum File Size (Mb):" : "Maximum File Size (Mb):",
- "Edit your filters" : "Edit your filters",
- "Index Files Tree:" : "Index Files Tree:",
- "Disable default search from Files" : "Disable default search from Files",
- "Index File Trash:" : "Index File Trash:",
- "Index Public Links:" : "Index Public Links:",
- "Index Federated Shares:" : "Index Federated Shares:",
- "Index External Storages:" : "Index External Storages:",
- "Index Encrypted Files:" : "Index Encrypted Files:",
- "Last index:" : "Last index:",
- "Indexing Bookmarks" : "Indexing Bookmarks",
- "The App Bookmarks is not installed/enabled." : "The App Bookmarks is not installed/enabled.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bookmarks\" enabled, your bookmarks will be indexed.",
- "Checking" : "Checking",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Resource Level:",
- "Higher performance" : "Higher performance",
- "High performance" : "High performance",
- "Medium performance" : "Medium performance",
- "Low performance" : "Low performance",
- "Lower performance" : "Lower performance",
- "Live Index:" : "Live Index:",
- "Disabled" : "Disabled",
- "Using Semaphore" : "Using Semaphore",
- "Using Database" : "Using Database",
- "Minimum Background Index delay:" : "Minimum Background Index delay:",
- "hours" : "hours",
- "Maximum Background Index delay:" : "Maximum Background Index delay:",
- "days" : "days",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Number of documents:",
- "Number of segments:" : "Number of segments:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "it is recommended to do the very first indexing of your files using the ./occ nextant:index command.",
- "However, you can force it to be started as a background process." : "However, you can force it to be started as a background process.",
- "Force first index as a cronjob" : "Force first index as a cronjob",
- "Force index" : "Force index",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexing is scheduled within the next few hours (Cron)",
- "Indexing in progress" : "Indexing in progress",
- "Type of files to extract" : "Type of files to extract",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Text File (Text, HTML, Subtitles, Source Codeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office Documents",
- "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audio File (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions you wish to ignore (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/es.js b/l10n/es.js
deleted file mode 100644
index 8d96a7f..0000000
--- a/l10n/es.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ir a carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aun no esta configurado",
- "Ping querying your Solr Server" : "Consulta ping a su servidor Solr",
- "Verifying Schema integrity" : "ComprobaciĆ³n de integridad de esquema",
- "Test simple text extract query" : "Probar la consulta de extracciĆ³n de texto simple",
- "Test update document query" : "Probar la consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminar el documento de prueba",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron correctas. Guardando configuraciĆ³n",
- "Address-format incorrect" : "Formato de direcciĆ³n incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr esta activo, ejecutƔndose y respondiendo a la consulta ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no esta respondiendo a la consulta ping (Error #%1$s)",
- "Schema is fine" : "El esquema es correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No se ha podido verificar/arreglar la integridad del esquema (Error nĀŗ %1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la extracciĆ³n. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Error al actualizar el campo. No se pudo encontrar el documento original (Error nĀŗ %1$s)",
- "Error during commit (Error #%1$s)" : "Error durante la integraciĆ³n (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Error al actualizar campo (Error nĀŗ %1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontrƩ",
- "Found something, but not what was expected." : "Se encontrĆ³ algo, pero no lo que se esperaba",
- "Cannot find any document" : "No se puede encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "La bĆŗsqueda fallĆ³. Por favor revise la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Test-document deleted" : "Documento de prueba borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No se pudo borrar el documento de prueba. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)",
- "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No se pudo guardar la configuraciĆ³n. Por favor, vuelve a cargar esta pĆ”gina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifique la direcciĆ³n de su servidor Solr, y el nombre del nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr funcionando, se pueden encontrar guĆ­as de instalaciĆ³n en la wiki.",
- "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n allĆ­ sobre esta interfaz.",
- "Saving" : "Guardando",
- "Settings" : "Ajustes",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "DesconexiĆ³n (en segundos):",
- "Test and Save" : "Probar y guardar",
- "Indexing Files" : "Analizar archivos",
- "Maximum File Size (Mb):" : "TamaƱo mƔximo de archivo (Mb):",
- "Edit your filters" : "Edite sus filtros",
- "Index Files Tree:" : "Ɓrbol de archivos indexados:",
- "Disable default search from Files" : "Desactivar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar papelera de archivos:",
- "Index Public Links:" : "Enlaces pĆŗblicos indexados:",
- "Index Federated Shares:" : "Recursos compartidos federados indexados:",
- "Index External Storages:" : "Almacenamientos externos indexados:",
- "Index Encrypted Files:" : "Archivos cifrados indexados:",
- "Last index:" : "ƚltimo indexado:",
- "Indexing Bookmarks" : "Analizar marcadores",
- "The App Bookmarks is not installed/enabled." : "La aplicaciĆ³n Bookmarks no esta instalada/disponible.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La app Marcadores estƔ activada, tus marcadores serƔn indexados.",
- "Checking" : "Revisando",
- "Nextant Status" : "Estado de Nextant",
- "Resource Level:" : "Nivel de recurso:",
- "Higher performance" : "Rendimiento mƔs alto",
- "High performance" : "Alto rendimiento",
- "Medium performance" : "Rendimiento medio",
- "Low performance" : "Rendimiento bajo",
- "Lower performance" : "Rendimiento mas bajo",
- "Live Index:" : "ƍndice en vivo:",
- "Disabled" : "Deshabilitado",
- "Using Semaphore" : "Usar Semaphore",
- "Using Database" : "Usar base de datos",
- "Minimum Background Index delay:" : "Retraso mĆ­nimo de indexado en segundo plano:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Retraso mƔximo del indexado en segundo plano:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nextcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Se recomienda realizar el primer indexado de tus arcihvo usando el comando ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Sin emabrgo, puede forzar su inicio como un proceso en segundo plano.",
- "Force first index as a cronjob" : "Forzar primer anƔlisis como un trabajo cron",
- "Force index" : "Forzar anƔlisis",
- "Indexing is scheduled within the next few hours (Cron)" : "El indexado estĆ” programado dentro de las prĆ³ximas horas (cron)",
- "Indexing in progress" : "AnƔlisis en proceso",
- "Type of files to extract" : "Tipos de archivos para extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de texto (HTML, texto, subtĆ­tulos, cĆ³digo fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos de oficina",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que le gustarĆ­a ignorar (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es.json b/l10n/es.json
deleted file mode 100644
index 6e64226..0000000
--- a/l10n/es.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ir a carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aun no esta configurado",
- "Ping querying your Solr Server" : "Consulta ping a su servidor Solr",
- "Verifying Schema integrity" : "ComprobaciĆ³n de integridad de esquema",
- "Test simple text extract query" : "Probar la consulta de extracciĆ³n de texto simple",
- "Test update document query" : "Probar la consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminar el documento de prueba",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron correctas. Guardando configuraciĆ³n",
- "Address-format incorrect" : "Formato de direcciĆ³n incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr esta activo, ejecutƔndose y respondiendo a la consulta ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no esta respondiendo a la consulta ping (Error #%1$s)",
- "Schema is fine" : "El esquema es correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No se ha podido verificar/arreglar la integridad del esquema (Error nĀŗ %1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la extracciĆ³n. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Error al actualizar el campo. No se pudo encontrar el documento original (Error nĀŗ %1$s)",
- "Error during commit (Error #%1$s)" : "Error durante la integraciĆ³n (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Error al actualizar campo (Error nĀŗ %1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontrƩ",
- "Found something, but not what was expected." : "Se encontrĆ³ algo, pero no lo que se esperaba",
- "Cannot find any document" : "No se puede encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "La bĆŗsqueda fallĆ³. Por favor revise la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Test-document deleted" : "Documento de prueba borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No se pudo borrar el documento de prueba. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)",
- "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No se pudo guardar la configuraciĆ³n. Por favor, vuelve a cargar esta pĆ”gina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifique la direcciĆ³n de su servidor Solr, y el nombre del nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr funcionando, se pueden encontrar guĆ­as de instalaciĆ³n en la wiki.",
- "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n allĆ­ sobre esta interfaz.",
- "Saving" : "Guardando",
- "Settings" : "Ajustes",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "DesconexiĆ³n (en segundos):",
- "Test and Save" : "Probar y guardar",
- "Indexing Files" : "Analizar archivos",
- "Maximum File Size (Mb):" : "TamaƱo mƔximo de archivo (Mb):",
- "Edit your filters" : "Edite sus filtros",
- "Index Files Tree:" : "Ɓrbol de archivos indexados:",
- "Disable default search from Files" : "Desactivar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar papelera de archivos:",
- "Index Public Links:" : "Enlaces pĆŗblicos indexados:",
- "Index Federated Shares:" : "Recursos compartidos federados indexados:",
- "Index External Storages:" : "Almacenamientos externos indexados:",
- "Index Encrypted Files:" : "Archivos cifrados indexados:",
- "Last index:" : "ƚltimo indexado:",
- "Indexing Bookmarks" : "Analizar marcadores",
- "The App Bookmarks is not installed/enabled." : "La aplicaciĆ³n Bookmarks no esta instalada/disponible.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La app Marcadores estƔ activada, tus marcadores serƔn indexados.",
- "Checking" : "Revisando",
- "Nextant Status" : "Estado de Nextant",
- "Resource Level:" : "Nivel de recurso:",
- "Higher performance" : "Rendimiento mƔs alto",
- "High performance" : "Alto rendimiento",
- "Medium performance" : "Rendimiento medio",
- "Low performance" : "Rendimiento bajo",
- "Lower performance" : "Rendimiento mas bajo",
- "Live Index:" : "ƍndice en vivo:",
- "Disabled" : "Deshabilitado",
- "Using Semaphore" : "Usar Semaphore",
- "Using Database" : "Usar base de datos",
- "Minimum Background Index delay:" : "Retraso mĆ­nimo de indexado en segundo plano:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Retraso mƔximo del indexado en segundo plano:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nextcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Se recomienda realizar el primer indexado de tus arcihvo usando el comando ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Sin emabrgo, puede forzar su inicio como un proceso en segundo plano.",
- "Force first index as a cronjob" : "Forzar primer anƔlisis como un trabajo cron",
- "Force index" : "Forzar anƔlisis",
- "Indexing is scheduled within the next few hours (Cron)" : "El indexado estĆ” programado dentro de las prĆ³ximas horas (cron)",
- "Indexing in progress" : "AnƔlisis en proceso",
- "Type of files to extract" : "Tipos de archivos para extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de texto (HTML, texto, subtĆ­tulos, cĆ³digo fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos de oficina",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que le gustarĆ­a ignorar (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/es_AR.js b/l10n/es_AR.js
deleted file mode 100644
index 85ccad8..0000000
--- a/l10n/es_AR.js
+++ /dev/null
@@ -1,89 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ir a la carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aĆŗn no ha sido configurado",
- "Ping querying your Solr Server" : "Haciendo una consulta ping a su servidor Solr",
- "Verifying Schema integrity" : "Verificando la integidad del esquema",
- "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto",
- "Test update document query" : "Probar consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminando el documento de pruebas",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando su configuraciĆ³n",
- "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consutlas de ping (Error #%1$s)",
- "Schema is fine" : "Schema estĆ” correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Favor de verficiar la configuraciĆ³n en su servidor Solr (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede contrar el documento orginal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontramos",
- "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ",
- "Cannot find any document" : "No se pudo encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Test-document deleted" : "El documento de pruebas fue borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Favor de volver a cargar esta pĆ”gina. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)",
- "Specify the address of your Solr, and the name of the core to use." : "Especificar la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.",
- "You can also find more information there about this interface." : "TambiĆ©n puede encontrar mĆ”s informaciĆ³n acerca de esta interface. ",
- "Saving" : "Guardando",
- "Settings" : "Configuraciones ",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de su servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Tiempo de expiraciĆ³n (en segundos):",
- "Test and Save" : "Probar y Guardar",
- "Indexing Files" : "Indexando Archivos",
- "Maximum File Size (Mb):" : "TamaƱo de archivos mƔximo (Mb):",
- "Edit your filters" : "Edite sus filtros",
- "Index Files Tree:" : "Indexar Ɓrbol de Archivos:",
- "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar Archivos de Basura:",
- "Index Public Links:" : "Indexar Links PĆŗblicas:",
- "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:",
- "Index External Storages:" : "Indexar Almacenamiento Externo:",
- "Index Encrypted Files:" : "Indexar Archivos Encriptados:",
- "Last index:" : "ƚltima Ć­ndexaciĆ³n:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada",
- "Checking" : "Verificando",
- "Nextant Status" : "Estatus de Nextant",
- "Resource Level:" : "Nivel de recursos:",
- "Higher performance" : "DesempeƱo muy alto",
- "High performance" : "DesempeƱo alto",
- "Medium performance" : "DesempeƱo medio",
- "Low performance" : "DesempeƱo bajo",
- "Lower performance" : "DesempeƱo muy bajo",
- "Live Index:" : "ƍndice activo:",
- "Disabled" : "Deshabilitar",
- "Using Semaphore" : "Usando Semaphore",
- "Using Database" : "Usando base de datos",
- "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de indexaciĆ³n de fondo:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de indexaciĆ³n de fondo:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nexcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "le recomendamos hacer la primera indexaciĆ³n de sus archivos usando el comando ./occ nextant:index ",
- "However, you can force it to be started as a background process." : "Sin embargo, usted la puede forzar para que inicie como un proceso de segundo plano. ",
- "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada",
- "Force index" : "Forzar indexaciĆ³n",
- "Indexing in progress" : "IndexaciĆ³n en curso",
- "Type of files to extract" : "Tipo de archivos a extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos fuera de lĆ­nea",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es_AR.json b/l10n/es_AR.json
deleted file mode 100644
index 2ba0db0..0000000
--- a/l10n/es_AR.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ir a la carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aĆŗn no ha sido configurado",
- "Ping querying your Solr Server" : "Haciendo una consulta ping a su servidor Solr",
- "Verifying Schema integrity" : "Verificando la integidad del esquema",
- "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto",
- "Test update document query" : "Probar consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminando el documento de pruebas",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando su configuraciĆ³n",
- "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consutlas de ping (Error #%1$s)",
- "Schema is fine" : "Schema estĆ” correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Favor de verficiar la configuraciĆ³n en su servidor Solr (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede contrar el documento orginal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontramos",
- "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ",
- "Cannot find any document" : "No se pudo encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Test-document deleted" : "El documento de pruebas fue borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)",
- "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Favor de volver a cargar esta pĆ”gina. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)",
- "Specify the address of your Solr, and the name of the core to use." : "Especificar la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.",
- "You can also find more information there about this interface." : "TambiĆ©n puede encontrar mĆ”s informaciĆ³n acerca de esta interface. ",
- "Saving" : "Guardando",
- "Settings" : "Configuraciones ",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de su servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Tiempo de expiraciĆ³n (en segundos):",
- "Test and Save" : "Probar y Guardar",
- "Indexing Files" : "Indexando Archivos",
- "Maximum File Size (Mb):" : "TamaƱo de archivos mƔximo (Mb):",
- "Edit your filters" : "Edite sus filtros",
- "Index Files Tree:" : "Indexar Ɓrbol de Archivos:",
- "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar Archivos de Basura:",
- "Index Public Links:" : "Indexar Links PĆŗblicas:",
- "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:",
- "Index External Storages:" : "Indexar Almacenamiento Externo:",
- "Index Encrypted Files:" : "Indexar Archivos Encriptados:",
- "Last index:" : "ƚltima Ć­ndexaciĆ³n:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada",
- "Checking" : "Verificando",
- "Nextant Status" : "Estatus de Nextant",
- "Resource Level:" : "Nivel de recursos:",
- "Higher performance" : "DesempeƱo muy alto",
- "High performance" : "DesempeƱo alto",
- "Medium performance" : "DesempeƱo medio",
- "Low performance" : "DesempeƱo bajo",
- "Lower performance" : "DesempeƱo muy bajo",
- "Live Index:" : "ƍndice activo:",
- "Disabled" : "Deshabilitar",
- "Using Semaphore" : "Usando Semaphore",
- "Using Database" : "Usando base de datos",
- "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de indexaciĆ³n de fondo:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de indexaciĆ³n de fondo:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nexcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "le recomendamos hacer la primera indexaciĆ³n de sus archivos usando el comando ./occ nextant:index ",
- "However, you can force it to be started as a background process." : "Sin embargo, usted la puede forzar para que inicie como un proceso de segundo plano. ",
- "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada",
- "Force index" : "Forzar indexaciĆ³n",
- "Indexing in progress" : "IndexaciĆ³n en curso",
- "Type of files to extract" : "Tipo de archivos a extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos fuera de lĆ­nea",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/es_MX.js b/l10n/es_MX.js
deleted file mode 100644
index 2787264..0000000
--- a/l10n/es_MX.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ir a la carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aĆŗn no estĆ” configurado",
- "Ping querying your Solr Server" : "Haciendo una consulta ping a tu servidor Solr",
- "Verifying Schema integrity" : "Verificando la integidad del esquema",
- "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto",
- "Test update document query" : "Probar consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminando el documento de pruebas",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando tu configuraciĆ³n",
- "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consultas de ping (Error #%1$s)",
- "Schema is fine" : "Schema estĆ” correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Por favor verficia la configuraciĆ³n en tu servidor Solr (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede encontrar el documento orginal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontramos",
- "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ",
- "Cannot find any document" : "No se pudo encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)",
- "Test-document deleted" : "El documento de pruebas fue borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)",
- "Your configuration has been saved" : "Tu configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Por favor vuelve a cargar esta pĆ”gina. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifica la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr corriendo, puedes encontrar las guĆ­as de instalaciĆ³n en el wiki. ",
- "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n acerca de esta interface. ",
- "Saving" : "Guardando",
- "Settings" : "Configuraciones ",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Tiempo de vida (en segundos):",
- "Test and Save" : "Probar y Guardar",
- "Indexing Files" : "Indexando Archivos",
- "Maximum File Size (Mb):" : "TamaƱo de archivos mƔximo (Mb):",
- "Edit your filters" : "Edita tus filtros",
- "Index Files Tree:" : "Indexar Ɓrbol de Archivos:",
- "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar Archivos de Basura:",
- "Index Public Links:" : "Indexar Ligas PĆŗblicas:",
- "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:",
- "Index External Storages:" : "Indexar Almacenamiento Externo:",
- "Index Encrypted Files:" : "Indexar Archivos Encriptados:",
- "Last index:" : "ƚltima Ć­ndexaciĆ³n:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La \"AplicaciĆ³n de Marcadores\" estĆ” habilitada, tus marcadores serĆ”n indexados. ",
- "Checking" : "Verificando",
- "Nextant Status" : "Estatus de Nextant",
- "Resource Level:" : "Nivel de recursos:",
- "Higher performance" : "DesempeƱo muy alto",
- "High performance" : "Alto desempeƱo",
- "Medium performance" : "DesempeƱo medio",
- "Low performance" : "Bajo desempeƱo",
- "Lower performance" : "Muy bajo desempeƱo",
- "Live Index:" : "ƍndice activo:",
- "Disabled" : "Deshabilitado",
- "Using Semaphore" : "Usando Semaphore",
- "Using Database" : "Usando la base de datos",
- "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de IndexaciĆ³n de Fondo:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de IndexaciĆ³n de Fondo:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nexcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "te recomendamos hacer la primera indexaciĆ³n de tus archivos usando el comando ./occ nextant:index ",
- "However, you can force it to be started as a background process." : "Sin embargo, la puedes forzar para que inicie como un proceso de segundo plano. ",
- "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada",
- "Force index" : "Forzar indexaciĆ³n",
- "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³n esta calendarizada para dentro de las prĆ³ximas horas (Cron)",
- "Indexing in progress" : "IndexaciĆ³n en curso",
- "Type of files to extract" : "Tipo de archivos a extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos de Office",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es_MX.json b/l10n/es_MX.json
deleted file mode 100644
index db12365..0000000
--- a/l10n/es_MX.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ir a la carpeta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant aĆŗn no estĆ” configurado",
- "Ping querying your Solr Server" : "Haciendo una consulta ping a tu servidor Solr",
- "Verifying Schema integrity" : "Verificando la integidad del esquema",
- "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto",
- "Test update document query" : "Probar consulta de actualizaciĆ³n de documento",
- "Test search query" : "Probar consulta de bĆŗsqueda",
- "Removing the test document" : "Eliminando el documento de pruebas",
- "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando tu configuraciĆ³n",
- "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consultas de ping (Error #%1$s)",
- "Schema is fine" : "Schema estĆ” correcto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Por favor verficia la configuraciĆ³n en tu servidor Solr (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede encontrar el documento orginal - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)",
- "Document updated" : "Documento actualizado",
- "Found it" : "Lo encontramos",
- "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ",
- "Cannot find any document" : "No se pudo encontrar ningĆŗn documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)",
- "Test-document deleted" : "El documento de pruebas fue borrado",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)",
- "Your configuration has been saved" : "Tu configuraciĆ³n ha sido guardada",
- "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Por favor vuelve a cargar esta pĆ”gina. ",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifica la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr corriendo, puedes encontrar las guĆ­as de instalaciĆ³n en el wiki. ",
- "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n acerca de esta interface. ",
- "Saving" : "Guardando",
- "Settings" : "Configuraciones ",
- "Nextant version:" : "VersiĆ³n de Nextant:",
- "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Tiempo de vida (en segundos):",
- "Test and Save" : "Probar y Guardar",
- "Indexing Files" : "Indexando Archivos",
- "Maximum File Size (Mb):" : "TamaƱo de archivos mƔximo (Mb):",
- "Edit your filters" : "Edita tus filtros",
- "Index Files Tree:" : "Indexar Ɓrbol de Archivos:",
- "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos",
- "Index File Trash:" : "Indexar Archivos de Basura:",
- "Index Public Links:" : "Indexar Ligas PĆŗblicas:",
- "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:",
- "Index External Storages:" : "Indexar Almacenamiento Externo:",
- "Index Encrypted Files:" : "Indexar Archivos Encriptados:",
- "Last index:" : "ƚltima Ć­ndexaciĆ³n:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La \"AplicaciĆ³n de Marcadores\" estĆ” habilitada, tus marcadores serĆ”n indexados. ",
- "Checking" : "Verificando",
- "Nextant Status" : "Estatus de Nextant",
- "Resource Level:" : "Nivel de recursos:",
- "Higher performance" : "DesempeƱo muy alto",
- "High performance" : "Alto desempeƱo",
- "Medium performance" : "DesempeƱo medio",
- "Low performance" : "Bajo desempeƱo",
- "Lower performance" : "Muy bajo desempeƱo",
- "Live Index:" : "ƍndice activo:",
- "Disabled" : "Deshabilitado",
- "Using Semaphore" : "Usando Semaphore",
- "Using Database" : "Usando la base de datos",
- "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de IndexaciĆ³n de Fondo:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de IndexaciĆ³n de Fondo:",
- "days" : "dĆ­as",
- "Nextcloud Cron:" : "Cron de Nexcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "te recomendamos hacer la primera indexaciĆ³n de tus archivos usando el comando ./occ nextant:index ",
- "However, you can force it to be started as a background process." : "Sin embargo, la puedes forzar para que inicie como un proceso de segundo plano. ",
- "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada",
- "Force index" : "Forzar indexaciĆ³n",
- "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³n esta calendarizada para dentro de las prĆ³ximas horas (Cron)",
- "Indexing in progress" : "IndexaciĆ³n en curso",
- "Type of files to extract" : "Tipo de archivos a extraer",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos de Office",
- "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/fi.js b/l10n/fi.js
deleted file mode 100644
index 0c807ba..0000000
--- a/l10n/fi.js
+++ /dev/null
@@ -1,42 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Siirry kansioon",
- "never" : "ei koskaan",
- "Nextant is not configured yet" : "Nextant ei ole vielƤ mƤƤritelty",
- "Test simple text extract query" : "Testaa yksinkertaisen tekstin purkamiskysely",
- "Test update document query" : "Testsaa dokumentin pƤivityskysely",
- "Test search query" : "Testaa hakukysely",
- "Removing the test document" : "Poista testidokumentti",
- "All test went fine. Saving your configuration" : "Kaikki testit onnistuivat. Tallennetaan mƤƤritykset",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr on valmis, kƤynnissƤ ja vastaa ping-kyselyyn",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ei vastaa ping-kyselyyn (Virhe #%1$s)",
- "Schema is fine" : "Skeema on kelvollinen",
- "Document updated" : "Dokumentti pƤivitetty",
- "Cannot find any document" : "YhtƤkƤƤn dokumenttia ei lƶytynyt",
- "Your configuration has been saved" : "MƤƤritykset on tallennettu",
- "Saving" : "Tallennetaan",
- "Settings" : "Asetukset",
- "Nextant version:" : "Nextant-versio:",
- "Timeout (in seconds):" : "Aikakatkaisu (sekunneissa):",
- "Test and Save" : "Testaa ja tallenna",
- "Indexing Files" : "Indeksoidaan tiedostoja",
- "Maximum File Size (Mb):" : "Tiedoston enimmƤiskoko (Mt):",
- "Edit your filters" : "Muokkaa suodattimia",
- "Indexing Bookmarks" : "Indeksoidaan kirjanmerkkejƤ",
- "Checking" : "Tarkistetaan",
- "Nextant Status" : "Nextant-tila",
- "Disabled" : "Ei kƤytƶssƤ",
- "hours" : "tuntia",
- "days" : "pƤivƤƤ",
- "Nextcloud Cron:" : "Nextcloud-cron:",
- "Indexing in progress" : "Indeksointi kƤynnissƤ",
- "Type of files to extract" : "Purettavien tiedostojen tyypit",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstitiedosto (teksti, HTML, tekstitykset, lƤhdekoodi...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office-dokumentit",
- "Image (JPEG, TIFF)" : "Kuva (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "ƄƤnitiedosto (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Ohitettavat pƤƤtteet (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/fi.json b/l10n/fi.json
deleted file mode 100644
index d861616..0000000
--- a/l10n/fi.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{ "translations": {
- "Go to folder" : "Siirry kansioon",
- "never" : "ei koskaan",
- "Nextant is not configured yet" : "Nextant ei ole vielƤ mƤƤritelty",
- "Test simple text extract query" : "Testaa yksinkertaisen tekstin purkamiskysely",
- "Test update document query" : "Testsaa dokumentin pƤivityskysely",
- "Test search query" : "Testaa hakukysely",
- "Removing the test document" : "Poista testidokumentti",
- "All test went fine. Saving your configuration" : "Kaikki testit onnistuivat. Tallennetaan mƤƤritykset",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr on valmis, kƤynnissƤ ja vastaa ping-kyselyyn",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ei vastaa ping-kyselyyn (Virhe #%1$s)",
- "Schema is fine" : "Skeema on kelvollinen",
- "Document updated" : "Dokumentti pƤivitetty",
- "Cannot find any document" : "YhtƤkƤƤn dokumenttia ei lƶytynyt",
- "Your configuration has been saved" : "MƤƤritykset on tallennettu",
- "Saving" : "Tallennetaan",
- "Settings" : "Asetukset",
- "Nextant version:" : "Nextant-versio:",
- "Timeout (in seconds):" : "Aikakatkaisu (sekunneissa):",
- "Test and Save" : "Testaa ja tallenna",
- "Indexing Files" : "Indeksoidaan tiedostoja",
- "Maximum File Size (Mb):" : "Tiedoston enimmƤiskoko (Mt):",
- "Edit your filters" : "Muokkaa suodattimia",
- "Indexing Bookmarks" : "Indeksoidaan kirjanmerkkejƤ",
- "Checking" : "Tarkistetaan",
- "Nextant Status" : "Nextant-tila",
- "Disabled" : "Ei kƤytƶssƤ",
- "hours" : "tuntia",
- "days" : "pƤivƤƤ",
- "Nextcloud Cron:" : "Nextcloud-cron:",
- "Indexing in progress" : "Indeksointi kƤynnissƤ",
- "Type of files to extract" : "Purettavien tiedostojen tyypit",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstitiedosto (teksti, HTML, tekstitykset, lƤhdekoodi...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office-dokumentit",
- "Image (JPEG, TIFF)" : "Kuva (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "ƄƤnitiedosto (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Ohitettavat pƤƤtteet (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/fr.js b/l10n/fr.js
deleted file mode 100644
index 3977483..0000000
--- a/l10n/fr.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ouvrir le dossier",
- "never" : "jamais",
- "Nextant is not configured yet" : "Nextant n'est pas encore configurƩ",
- "Ping querying your Solr Server" : "Envoi d'une requĆŖte ping au serveur Solr",
- "Verifying Schema integrity" : "VĆ©rification de lā€™intĆ©gritĆ© du schĆ©ma",
- "Test simple text extract query" : "Test d'une simple requĆŖte d'extraction de texte",
- "Test update document query" : "Test de la mise Ć  jour d'un document",
- "Test search query" : "Tentative de recherche",
- "Removing the test document" : "Suppression du document de test",
- "All test went fine. Saving your configuration" : "Tous les tests ont ƩtƩ validƩs. Sauvegarde de votre configuration.",
- "Address-format incorrect" : "Format de l'adresse incorrect",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr est actif, en cours et rĆ©pond Ć  la requĆŖte ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ne rĆ©pond pas a la requĆŖte ping (Erreur #%1$s)",
- "Schema is fine" : "Le schƩma est valide",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossible de vƩrifier/rƩparer le schƩma (Erreur #%1$s)",
- "Text extracted" : "Texte extrait",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de l'extraction. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Erreur de mise Ć  jour de champ - Impossible de trouver le document d'origine (Erreur #%1$s)",
- "Error during commit (Error #%1$s)" : "Erreur lors de l'application des modifications (commit) (Erreur #%1$s)",
- "Error while updating field (Error #%1$s)" : "Erreur lors de la mise a jour des champs (Erreur #%1$s)",
- "Document updated" : "Document mis a jour",
- "Found it" : "TrouvƩ",
- "Found something, but not what was expected." : "Quelque chose a ƩtƩ trouvƩ. Mais rien Ơ voir. Du tout.",
- "Cannot find any document" : "Impossible de rƩcupƩrer un seul document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la recherche. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Test-document deleted" : "Document de test supprimƩ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la suppression de notre document de test. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Your configuration has been saved" : "Votre configuration a ƩtƩ sauvegardƩe",
- "Configuration could not be saved. Please reload this page." : "Votre configuration nā€™a pas pu ĆŖtre sauvegardĆ©e. Merci de rafraĆ®chir cette page.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Recherche de texte intƩgral)",
- "Specify the address of your Solr, and the name of the core to use." : "Renseignez l'adresse du serveur Solr et le nom du noyau (core) a utiliser.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si vous ne disposez pas d'un serveur Solr, des guides d'installation peuvent ĆŖtre trouvĆ©s sur le Wiki.",
- "You can also find more information there about this interface." : "Vous pouvez aussi trouver plus d'information ici Ć  propos de cette interface.",
- "Saving" : "Sauvegarde",
- "Settings" : "Configuration",
- "Nextant version:" : "Version de Nextant :",
- "Address of your Solr servlet:" : "Adresse de votre Servlet Solr :",
- "Core:" : "Noyau (Core) :",
- "Timeout (in seconds):" : "DĆ©lai d'expiration (en secondes) :",
- "Test and Save" : "Tester et Sauvegarder",
- "Indexing Files" : "Indexer les Fichiers",
- "Maximum File Size (Mb):" : "Taille max. du fichier (Mo) :",
- "Edit your filters" : "Configuration des filtres",
- "Index Files Tree:" : "Index de l'arborescence des fichiers : ",
- "Disable default search from Files" : "DĆ©sactiver la recherche de base de Files",
- "Index File Trash:" : "Index des fichiers de la corbeille :",
- "Index Public Links:" : "Index des liens publics :",
- "Index Federated Shares:" : "Index des partages fƩdƩrƩs :",
- "Index External Storages:" : "Index des stockages externes :",
- "Index Encrypted Files:" : "Index des fichiers chiffrƩs :",
- "Last index:" : "Dernier index :",
- "Indexing Bookmarks" : "Indexer les Favoris",
- "The App Bookmarks is not installed/enabled." : "Le module Bookmarks n'est pas installƩ/configurƩ",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'application \"Bookmarks\" est activƩ, vos favoris seront indexƩs.",
- "Checking" : "VĆ©rification",
- "Nextant Status" : "Status de Nextant",
- "Resource Level:" : "Niveau de ressource :",
- "Higher performance" : "Performance maximale",
- "High performance" : "Haute performance",
- "Medium performance" : "Moyenne performance",
- "Low performance" : "Basse performance",
- "Lower performance" : "Performance minimale",
- "Live Index:" : "Index en direct :",
- "Disabled" : "DƩsactivƩ",
- "Using Semaphore" : "via Semaphore",
- "Using Database" : "via Base de donnƩes ",
- "Minimum Background Index delay:" : "Intervalle minimal de synchronisation en arriĆØre plan :",
- "hours" : "heures",
- "Maximum Background Index delay:" : "Intervalle maximal de synchronisation en arriĆØre plan :",
- "days" : "jours",
- "Nextcloud Cron:" : "Cron Nextcloud :",
- "Number of documents:" : "Nombre de documents :",
- "Number of segments:" : "Nombre de segments :",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Il est recommandĆ© de lancer la premiĆØre indexation de vos fichiers en utilisant la commande ./occ nextant:index",
- "However, you can force it to be started as a background process." : "NĆ©anmoins, vous pouvez forcer son dĆ©marrage en arriĆØre-plan.",
- "Force first index as a cronjob" : "Forcer la crĆ©ation du premier index en arriĆØre-plan ",
- "Force index" : "Forcer l'indexation",
- "Indexing is scheduled within the next few hours (Cron)" : "Une indexation est prƩvue dans les prochaines heures (cron)",
- "Indexing in progress" : "Indexation en cours",
- "Type of files to extract" : "Type de fichiers Ć  extraire ",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fichiers Texte (Texte, HTML, sous-titres, source, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documents Office",
- "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Fichiers Audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions Ć  ignorer (.java .xml)"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/l10n/fr.json b/l10n/fr.json
deleted file mode 100644
index 5f79054..0000000
--- a/l10n/fr.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ouvrir le dossier",
- "never" : "jamais",
- "Nextant is not configured yet" : "Nextant n'est pas encore configurƩ",
- "Ping querying your Solr Server" : "Envoi d'une requĆŖte ping au serveur Solr",
- "Verifying Schema integrity" : "VĆ©rification de lā€™intĆ©gritĆ© du schĆ©ma",
- "Test simple text extract query" : "Test d'une simple requĆŖte d'extraction de texte",
- "Test update document query" : "Test de la mise Ć  jour d'un document",
- "Test search query" : "Tentative de recherche",
- "Removing the test document" : "Suppression du document de test",
- "All test went fine. Saving your configuration" : "Tous les tests ont ƩtƩ validƩs. Sauvegarde de votre configuration.",
- "Address-format incorrect" : "Format de l'adresse incorrect",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr est actif, en cours et rĆ©pond Ć  la requĆŖte ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ne rĆ©pond pas a la requĆŖte ping (Erreur #%1$s)",
- "Schema is fine" : "Le schƩma est valide",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossible de vƩrifier/rƩparer le schƩma (Erreur #%1$s)",
- "Text extracted" : "Texte extrait",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de l'extraction. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Erreur de mise Ć  jour de champ - Impossible de trouver le document d'origine (Erreur #%1$s)",
- "Error during commit (Error #%1$s)" : "Erreur lors de l'application des modifications (commit) (Erreur #%1$s)",
- "Error while updating field (Error #%1$s)" : "Erreur lors de la mise a jour des champs (Erreur #%1$s)",
- "Document updated" : "Document mis a jour",
- "Found it" : "TrouvƩ",
- "Found something, but not what was expected." : "Quelque chose a ƩtƩ trouvƩ. Mais rien Ơ voir. Du tout.",
- "Cannot find any document" : "Impossible de rƩcupƩrer un seul document",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la recherche. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Test-document deleted" : "Document de test supprimƩ",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la suppression de notre document de test. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)",
- "Your configuration has been saved" : "Votre configuration a ƩtƩ sauvegardƩe",
- "Configuration could not be saved. Please reload this page." : "Votre configuration nā€™a pas pu ĆŖtre sauvegardĆ©e. Merci de rafraĆ®chir cette page.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Recherche de texte intƩgral)",
- "Specify the address of your Solr, and the name of the core to use." : "Renseignez l'adresse du serveur Solr et le nom du noyau (core) a utiliser.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si vous ne disposez pas d'un serveur Solr, des guides d'installation peuvent ĆŖtre trouvĆ©s sur le Wiki.",
- "You can also find more information there about this interface." : "Vous pouvez aussi trouver plus d'information ici Ć  propos de cette interface.",
- "Saving" : "Sauvegarde",
- "Settings" : "Configuration",
- "Nextant version:" : "Version de Nextant :",
- "Address of your Solr servlet:" : "Adresse de votre Servlet Solr :",
- "Core:" : "Noyau (Core) :",
- "Timeout (in seconds):" : "DĆ©lai d'expiration (en secondes) :",
- "Test and Save" : "Tester et Sauvegarder",
- "Indexing Files" : "Indexer les Fichiers",
- "Maximum File Size (Mb):" : "Taille max. du fichier (Mo) :",
- "Edit your filters" : "Configuration des filtres",
- "Index Files Tree:" : "Index de l'arborescence des fichiers : ",
- "Disable default search from Files" : "DĆ©sactiver la recherche de base de Files",
- "Index File Trash:" : "Index des fichiers de la corbeille :",
- "Index Public Links:" : "Index des liens publics :",
- "Index Federated Shares:" : "Index des partages fƩdƩrƩs :",
- "Index External Storages:" : "Index des stockages externes :",
- "Index Encrypted Files:" : "Index des fichiers chiffrƩs :",
- "Last index:" : "Dernier index :",
- "Indexing Bookmarks" : "Indexer les Favoris",
- "The App Bookmarks is not installed/enabled." : "Le module Bookmarks n'est pas installƩ/configurƩ",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'application \"Bookmarks\" est activƩ, vos favoris seront indexƩs.",
- "Checking" : "VĆ©rification",
- "Nextant Status" : "Status de Nextant",
- "Resource Level:" : "Niveau de ressource :",
- "Higher performance" : "Performance maximale",
- "High performance" : "Haute performance",
- "Medium performance" : "Moyenne performance",
- "Low performance" : "Basse performance",
- "Lower performance" : "Performance minimale",
- "Live Index:" : "Index en direct :",
- "Disabled" : "DƩsactivƩ",
- "Using Semaphore" : "via Semaphore",
- "Using Database" : "via Base de donnƩes ",
- "Minimum Background Index delay:" : "Intervalle minimal de synchronisation en arriĆØre plan :",
- "hours" : "heures",
- "Maximum Background Index delay:" : "Intervalle maximal de synchronisation en arriĆØre plan :",
- "days" : "jours",
- "Nextcloud Cron:" : "Cron Nextcloud :",
- "Number of documents:" : "Nombre de documents :",
- "Number of segments:" : "Nombre de segments :",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Il est recommandĆ© de lancer la premiĆØre indexation de vos fichiers en utilisant la commande ./occ nextant:index",
- "However, you can force it to be started as a background process." : "NĆ©anmoins, vous pouvez forcer son dĆ©marrage en arriĆØre-plan.",
- "Force first index as a cronjob" : "Forcer la crĆ©ation du premier index en arriĆØre-plan ",
- "Force index" : "Forcer l'indexation",
- "Indexing is scheduled within the next few hours (Cron)" : "Une indexation est prƩvue dans les prochaines heures (cron)",
- "Indexing in progress" : "Indexation en cours",
- "Type of files to extract" : "Type de fichiers Ć  extraire ",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fichiers Texte (Texte, HTML, sous-titres, source, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documents Office",
- "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Fichiers Audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensions Ć  ignorer (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/l10n/hu.js b/l10n/hu.js
deleted file mode 100644
index 146dfb7..0000000
--- a/l10n/hu.js
+++ /dev/null
@@ -1,56 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "UgrƔs a mappƔba",
- "never" : "soha",
- "Nextant is not configured yet" : "A Nextant mƩg nincs beƔllƭtva",
- "Ping querying your Solr Server" : "Solr szerver pingelƩse",
- "Verifying Schema integrity" : "SĆ©ma integritĆ”s ellenőrzĆ©se",
- "Test simple text extract query" : "Egyszerű szƶveg kibontĆ”si kĆ©rĆ©s tesztelĆ©se",
- "Test update document query" : "Dokumentum frissƭtƩsi kƩrƩs tesztelƩse",
- "Test search query" : "Kereső kifejezĆ©s tesztelĆ©se",
- "Removing the test document" : "Teszt dokumentum eltƔvolƭtƔsa",
- "All test went fine. Saving your configuration" : "Minden teszt rendben. BeƔllƭtƔsok mentƩse",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr beƔllƭtva, fut Ʃs vƔlaszol a ping kƩrƩsre",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nem vƔlaszol a ping kƩrƩsre (Error #%1$s)",
- "Schema is fine" : "SĆ©ma rendben",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "KibontĆ”s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "FrissĆ­tĆ©s sikertelen - nem talĆ”lhatĆ³ az eredeti dokumentum (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Hiba a bekĆ¼ldĆ©s kƶzben (Error #%1$s)",
- "Document updated" : "Dokumentum frissĆ­tve",
- "Cannot find any document" : "Nem talĆ”lhatĆ³ egyetlen dokumentum sem",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KeresĆ©s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)",
- "Test-document deleted" : "Teszt dokumentum tƶrƶlve",
- "Your configuration has been saved" : "A beƔllƭtƔsaid el lettek mentve",
- "Nextant (Full-Text Search)" : "Nextant (telejes szƶveges keresƩs)",
- "Specify the address of your Solr, and the name of the core to use." : "Add meg a Solr szervered cĆ­mĆ©t Ć©s a hasznĆ”landĆ³ core nevĆ©t.",
- "Saving" : "MentƩs",
- "Settings" : "BeƔllƭtƔsok",
- "Test and Save" : "Teszt Ʃs mentƩs",
- "Indexing Files" : "FƔjlok indexelƩse",
- "Edit your filters" : "Szűrők szerkesztĆ©se",
- "Disable default search from Files" : "FĆ”jlok alapĆ©rtelmezett keresőjĆ©nek letiltĆ”sa",
- "Indexing Bookmarks" : "Kƶnyvjelzők indexelĆ©se",
- "The App Bookmarks is not installed/enabled." : "Az Kƶnyvjelzők alkalmazĆ”s nincs telepĆ­tve/engedĆ©lyezve.",
- "Checking" : "EllenőrzĆ©s",
- "Nextant Status" : "Nextant Ɣllapot",
- "Resource Level:" : "ErőforrĆ”s szint:",
- "Higher performance" : "Legmagasabb teljesƭtmƩny",
- "High performance" : "Magas teljesƭtmƩny",
- "Medium performance" : "Kƶzepes teljesƭtmƩny",
- "Low performance" : "Alacsony teljesƭtmƩny",
- "Lower performance" : "Legalacsonyabb teljesƭtmƩny",
- "Disabled" : "Letiltva",
- "Using Semaphore" : "Semaphore hasznƔlata",
- "Using Database" : "AdatbƔzis hasznƔlata",
- "hours" : "Ć³ra",
- "days" : "nap",
- "However, you can force it to be started as a background process." : "Viszont, hĆ”ttĆ©r folyamatkĆ©nt is kĆ©nyszerĆ­thető az indĆ­tĆ”sa.",
- "Force first index as a cronjob" : "Első indexelĆ©s kĆ©nyszerĆ­tĆ©se cronjob-kĆ©nt",
- "Force index" : "IndexelƩs kƩnyszerƭtƩs",
- "Indexing in progress" : "indexelƩs folyamatban",
- "Type of files to extract" : "KibontandĆ³ fĆ”jlok tĆ­pusa",
- "Office Documents" : "Office dokumentumok",
- "Extensions you wish to ignore (.java .xml)" : "Figyelmen kĆ­vĆ¼l hagyandĆ³ kiterjesztĆ©sek (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/hu.json b/l10n/hu.json
deleted file mode 100644
index 17aa36e..0000000
--- a/l10n/hu.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{ "translations": {
- "Go to folder" : "UgrƔs a mappƔba",
- "never" : "soha",
- "Nextant is not configured yet" : "A Nextant mƩg nincs beƔllƭtva",
- "Ping querying your Solr Server" : "Solr szerver pingelƩse",
- "Verifying Schema integrity" : "SĆ©ma integritĆ”s ellenőrzĆ©se",
- "Test simple text extract query" : "Egyszerű szƶveg kibontĆ”si kĆ©rĆ©s tesztelĆ©se",
- "Test update document query" : "Dokumentum frissƭtƩsi kƩrƩs tesztelƩse",
- "Test search query" : "Kereső kifejezĆ©s tesztelĆ©se",
- "Removing the test document" : "Teszt dokumentum eltƔvolƭtƔsa",
- "All test went fine. Saving your configuration" : "Minden teszt rendben. BeƔllƭtƔsok mentƩse",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr beƔllƭtva, fut Ʃs vƔlaszol a ping kƩrƩsre",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nem vƔlaszol a ping kƩrƩsre (Error #%1$s)",
- "Schema is fine" : "SĆ©ma rendben",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "KibontĆ”s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "FrissĆ­tĆ©s sikertelen - nem talĆ”lhatĆ³ az eredeti dokumentum (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Hiba a bekĆ¼ldĆ©s kƶzben (Error #%1$s)",
- "Document updated" : "Dokumentum frissĆ­tve",
- "Cannot find any document" : "Nem talĆ”lhatĆ³ egyetlen dokumentum sem",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KeresĆ©s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)",
- "Test-document deleted" : "Teszt dokumentum tƶrƶlve",
- "Your configuration has been saved" : "A beƔllƭtƔsaid el lettek mentve",
- "Nextant (Full-Text Search)" : "Nextant (telejes szƶveges keresƩs)",
- "Specify the address of your Solr, and the name of the core to use." : "Add meg a Solr szervered cĆ­mĆ©t Ć©s a hasznĆ”landĆ³ core nevĆ©t.",
- "Saving" : "MentƩs",
- "Settings" : "BeƔllƭtƔsok",
- "Test and Save" : "Teszt Ʃs mentƩs",
- "Indexing Files" : "FƔjlok indexelƩse",
- "Edit your filters" : "Szűrők szerkesztĆ©se",
- "Disable default search from Files" : "FĆ”jlok alapĆ©rtelmezett keresőjĆ©nek letiltĆ”sa",
- "Indexing Bookmarks" : "Kƶnyvjelzők indexelĆ©se",
- "The App Bookmarks is not installed/enabled." : "Az Kƶnyvjelzők alkalmazĆ”s nincs telepĆ­tve/engedĆ©lyezve.",
- "Checking" : "EllenőrzĆ©s",
- "Nextant Status" : "Nextant Ɣllapot",
- "Resource Level:" : "ErőforrĆ”s szint:",
- "Higher performance" : "Legmagasabb teljesƭtmƩny",
- "High performance" : "Magas teljesƭtmƩny",
- "Medium performance" : "Kƶzepes teljesƭtmƩny",
- "Low performance" : "Alacsony teljesƭtmƩny",
- "Lower performance" : "Legalacsonyabb teljesƭtmƩny",
- "Disabled" : "Letiltva",
- "Using Semaphore" : "Semaphore hasznƔlata",
- "Using Database" : "AdatbƔzis hasznƔlata",
- "hours" : "Ć³ra",
- "days" : "nap",
- "However, you can force it to be started as a background process." : "Viszont, hĆ”ttĆ©r folyamatkĆ©nt is kĆ©nyszerĆ­thető az indĆ­tĆ”sa.",
- "Force first index as a cronjob" : "Első indexelĆ©s kĆ©nyszerĆ­tĆ©se cronjob-kĆ©nt",
- "Force index" : "IndexelƩs kƩnyszerƭtƩs",
- "Indexing in progress" : "indexelƩs folyamatban",
- "Type of files to extract" : "KibontandĆ³ fĆ”jlok tĆ­pusa",
- "Office Documents" : "Office dokumentumok",
- "Extensions you wish to ignore (.java .xml)" : "Figyelmen kĆ­vĆ¼l hagyandĆ³ kiterjesztĆ©sek (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/is.js b/l10n/is.js
deleted file mode 100644
index 51250ec..0000000
--- a/l10n/is.js
+++ /dev/null
@@ -1,55 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Fara ƭ mƶppu",
- "never" : "aldrei",
- "Nextant is not configured yet" : "Nextant hefur ekki veriĆ° stillt",
- "Verifying Schema integrity" : "Athuga Ɣreiưanleika skema",
- "Test search query" : "PrĆ³fa leitarskilyrĆ°i",
- "Removing the test document" : "FjarlƦgi prĆ³funarskjaliĆ°",
- "All test went fine. Saving your configuration" : "Allar prĆ³fanir tĆ³kust. Vista uppsetninguna Ć¾Ć­na",
- "Address-format incorrect" : "Rangt sniĆ° Ć” vistfangi",
- "Schema is fine" : "Skema er Ć­ lagi",
- "Text extracted" : "ƞaĆ° tĆ³kst aĆ° nĆ” Ć­ texta",
- "Document updated" : "UppfƦrưi skjal",
- "Found it" : "Fann Ć¾aĆ°",
- "Found something, but not what was expected." : "Fann eitthvaĆ°, en ekki Ć¾aĆ° sem von var Ć”.",
- "Cannot find any document" : "Get ekki fundiĆ° neitt skjal",
- "Test-document deleted" : "Eyddi prĆ³funarskjali",
- "Your configuration has been saved" : "Stillingarnar Ć¾Ć­nar hafa veriĆ° vistaĆ°ar",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Leit ƭ ƶllum textanum)",
- "Saving" : "Er aĆ° vista ",
- "Settings" : "Stillingar",
- "Nextant version:" : "ƚtgĆ”fa Nextant:",
- "Core:" : "Kjarni:",
- "Timeout (in seconds):" : "TĆ­mamƶrk (sekĆŗndur):",
- "Test and Save" : "PrĆ³fa og vista",
- "Indexing Files" : "Geri yfirlit fyrir skrƔr",
- "Maximum File Size (Mb):" : "HƔmarks skrƔastƦrư (Mb):",
- "Edit your filters" : "SĆ½slaĆ°u meĆ° sĆ­ur",
- "Indexing Bookmarks" : "Geri yfirlit fyrir bĆ³kamerki",
- "Checking" : "Athugun",
- "Nextant Status" : "StaĆ°a Nextant",
- "Resource Level:" : "Stig tilfanga:",
- "Higher performance" : "Meiri afkƶst",
- "High performance" : "Mikil afkƶst",
- "Medium performance" : "Meưal afkƶst",
- "Low performance" : "Lƭtil afkƶst",
- "Lower performance" : "Minni afkƶst",
- "Disabled" : "Ɠvirkt",
- "Using Database" : "Nota gagnagrunn",
- "hours" : "klukkustundir",
- "days" : "dagar",
- "Nextcloud Cron:" : "Nextcloud-cron:",
- "Number of documents:" : "Fjƶldi skjala:",
- "Number of segments:" : "Fjƶldi bĆŗta:",
- "Type of files to extract" : "SkrĆ”ategundir sem Ć” aĆ° afĆ¾jappa",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextaskrĆ” (texti, HTML, skjĆ”textar, frumkĆ³Ć°i, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Skrifstofuskjƶl",
- "Image (JPEG, TIFF)" : "Mynd (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "HljĆ³Ć°skrĆ” (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "SkrĆ”arendingar sem Ć¾Ćŗ vilt sleppa (.java .xml)"
-},
-"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/l10n/is.json b/l10n/is.json
deleted file mode 100644
index af97d46..0000000
--- a/l10n/is.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{ "translations": {
- "Go to folder" : "Fara ƭ mƶppu",
- "never" : "aldrei",
- "Nextant is not configured yet" : "Nextant hefur ekki veriĆ° stillt",
- "Verifying Schema integrity" : "Athuga Ɣreiưanleika skema",
- "Test search query" : "PrĆ³fa leitarskilyrĆ°i",
- "Removing the test document" : "FjarlƦgi prĆ³funarskjaliĆ°",
- "All test went fine. Saving your configuration" : "Allar prĆ³fanir tĆ³kust. Vista uppsetninguna Ć¾Ć­na",
- "Address-format incorrect" : "Rangt sniĆ° Ć” vistfangi",
- "Schema is fine" : "Skema er Ć­ lagi",
- "Text extracted" : "ƞaĆ° tĆ³kst aĆ° nĆ” Ć­ texta",
- "Document updated" : "UppfƦrưi skjal",
- "Found it" : "Fann Ć¾aĆ°",
- "Found something, but not what was expected." : "Fann eitthvaĆ°, en ekki Ć¾aĆ° sem von var Ć”.",
- "Cannot find any document" : "Get ekki fundiĆ° neitt skjal",
- "Test-document deleted" : "Eyddi prĆ³funarskjali",
- "Your configuration has been saved" : "Stillingarnar Ć¾Ć­nar hafa veriĆ° vistaĆ°ar",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Leit ƭ ƶllum textanum)",
- "Saving" : "Er aĆ° vista ",
- "Settings" : "Stillingar",
- "Nextant version:" : "ƚtgĆ”fa Nextant:",
- "Core:" : "Kjarni:",
- "Timeout (in seconds):" : "TĆ­mamƶrk (sekĆŗndur):",
- "Test and Save" : "PrĆ³fa og vista",
- "Indexing Files" : "Geri yfirlit fyrir skrƔr",
- "Maximum File Size (Mb):" : "HƔmarks skrƔastƦrư (Mb):",
- "Edit your filters" : "SĆ½slaĆ°u meĆ° sĆ­ur",
- "Indexing Bookmarks" : "Geri yfirlit fyrir bĆ³kamerki",
- "Checking" : "Athugun",
- "Nextant Status" : "StaĆ°a Nextant",
- "Resource Level:" : "Stig tilfanga:",
- "Higher performance" : "Meiri afkƶst",
- "High performance" : "Mikil afkƶst",
- "Medium performance" : "Meưal afkƶst",
- "Low performance" : "Lƭtil afkƶst",
- "Lower performance" : "Minni afkƶst",
- "Disabled" : "Ɠvirkt",
- "Using Database" : "Nota gagnagrunn",
- "hours" : "klukkustundir",
- "days" : "dagar",
- "Nextcloud Cron:" : "Nextcloud-cron:",
- "Number of documents:" : "Fjƶldi skjala:",
- "Number of segments:" : "Fjƶldi bĆŗta:",
- "Type of files to extract" : "SkrĆ”ategundir sem Ć” aĆ° afĆ¾jappa",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextaskrĆ” (texti, HTML, skjĆ”textar, frumkĆ³Ć°i, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Skrifstofuskjƶl",
- "Image (JPEG, TIFF)" : "Mynd (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "HljĆ³Ć°skrĆ” (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "SkrĆ”arendingar sem Ć¾Ćŗ vilt sleppa (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
-} \ No newline at end of file
diff --git a/l10n/it.js b/l10n/it.js
deleted file mode 100644
index 7b9199b..0000000
--- a/l10n/it.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Vai alla cartella",
- "never" : "mai",
- "Nextant is not configured yet" : "Nextant non ĆØ ancora configurato",
- "Ping querying your Solr Server" : "Ping del tuo server Solr",
- "Verifying Schema integrity" : "Sto verificando l'integritĆ  di Schema",
- "Test simple text extract query" : "Query di estrazione di testo semplice di prova",
- "Test update document query" : "Query di aggiornamento documento di prova",
- "Test search query" : "Query di ricerca di prova",
- "Removing the test document" : "Rimozione del documento di prova",
- "All test went fine. Saving your configuration" : "Tutti i test sono a posto. Salvo la tua configurazione",
- "Address-format incorrect" : "Formato dell'indirizzo non corretto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr ĆØ attivo, in esecuzione e risponde al ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr non risponde al ping (Errore #%1$s)",
- "Schema is fine" : "Lo schema ĆØ corretto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossibile verificare/correggere l'integritĆ  dello schema (Errore #%1$s)",
- "Text extracted" : "Testo estratto",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Estrazione non riuscita. Controlla la configurazione del tuo server Solr (Errore #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Errore durante l'aggiornamento del campo - Impossibile trovare il documento originale (Errore #%1$s)",
- "Error during commit (Error #%1$s)" : "Errore durante il commit (Errore #%1$s)",
- "Error while updating field (Error #%1$s)" : "Errore durante l'aggiornamento del campo (Errore #%1$s)",
- "Document updated" : "Documento aggiornato",
- "Found it" : "Trovato",
- "Found something, but not what was expected." : "Abbiamo trovato qualcosa, ma non ciĆ² che ci aspettavamo.",
- "Cannot find any document" : "Impossibile trovare alcun documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ricerca non riuscita. Controlla la configurazione del tuo server Solr (errore #%1$s)",
- "Test-document deleted" : "Documento di prova eliminato",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Impossibile eliminare il documento di prova. Controlla la configurazione del tuo server Solr (errore #%1$s)",
- "Your configuration has been saved" : "La tua configurazione ĆØ stata salvata",
- "Configuration could not be saved. Please reload this page." : "Salvataggio della configurazione non riuscito. Ricarica questa pagina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (ricerca testo integrale)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifica l'indirizzo del tuo Solr e il nome del motore da utilizzare.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se la servlet Solr non ĆØ in esecuzione, puoi trovare alcune guide su come installarla sul wiki.",
- "You can also find more information there about this interface." : "Puoi inoltre trovarci ulteriori informazioni su questa interfaccia.",
- "Saving" : "Salvataggio in corso",
- "Settings" : "Impostazioni",
- "Nextant version:" : "Versione di Nextant:",
- "Address of your Solr servlet:" : "Indirizzo della tua servlet Solr:",
- "Core:" : "Motore:",
- "Timeout (in seconds):" : "Tempo massimo (in secondi):",
- "Test and Save" : "Prova e salva",
- "Indexing Files" : "Indicizzazione file",
- "Maximum File Size (Mb):" : "Dimensione massima file (Mb):",
- "Edit your filters" : "Modifica i tuoi filtri",
- "Index Files Tree:" : "Indicizzazione albero dei file:",
- "Disable default search from Files" : "Disabilita la ricerca predefinita da File",
- "Index File Trash:" : "Indicizzazione cestino:",
- "Index Public Links:" : "Indicizzazione collegamenti pubblici:",
- "Index Federated Shares:" : "Indicizzazione condivisioni federate:",
- "Index External Storages:" : "Indicizzazione archiviazioni esterne:",
- "Index Encrypted Files:" : "Indicizzazione file cifrati:",
- "Last index:" : "Ultimo indice:",
- "Indexing Bookmarks" : "Indicizzazione segnalibri",
- "The App Bookmarks is not installed/enabled." : "L'applicazione dei segnalibri non ĆØ installata/abilitata",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'applicazione dei segnalibri ĆØ abilitata, i tuoi segnalibri saranno indicizzati.",
- "Checking" : "Controllo in corso",
- "Nextant Status" : "Stato di Nextant",
- "Resource Level:" : "Livello risorsa:",
- "Higher performance" : "Prestazioni piĆ¹ alte",
- "High performance" : "Alte prestazioni",
- "Medium performance" : "Medie prestazioni",
- "Low performance" : "Basse prestazioni",
- "Lower performance" : "Prestazioni piĆ¹ basse",
- "Live Index:" : "Indicizzazione live:",
- "Disabled" : "Disabilitato",
- "Using Semaphore" : "Utilizza semaforo",
- "Using Database" : "Utilizza database",
- "Minimum Background Index delay:" : "Ritardo minimo di indicizzazione in background:",
- "hours" : "ore",
- "Maximum Background Index delay:" : "Ritardo massimo di indicizzazione in background:",
- "days" : "giorni",
- "Nextcloud Cron:" : "Cron di Nextcloud:",
- "Number of documents:" : "Numero di documenti:",
- "Number of segments:" : "Numero di segmenti:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "consigliamo di eseguire la prima indicizzazione dei tuoi file utilizzando il comando ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Tuttavia, puoi forzarne l'avvio come un processo in background.",
- "Force first index as a cronjob" : "Forza la prima indicizzazione come un cronjob",
- "Force index" : "Forza l'indicizzazione",
- "Indexing is scheduled within the next few hours (Cron)" : "L'indicizzazione ĆØ pianificata nelle prossime ore (cron)",
- "Indexing in progress" : "Indicizzazione in corso",
- "Type of files to extract" : "Tipo di file da estrarre",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "File di testo (testo, HTML, sottotitoli, codice sorgente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documento di Office",
- "Image (JPEG, TIFF)" : "Immagine (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "File audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Estensioni che desideri ignorare (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/it.json b/l10n/it.json
deleted file mode 100644
index d152c78..0000000
--- a/l10n/it.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Vai alla cartella",
- "never" : "mai",
- "Nextant is not configured yet" : "Nextant non ĆØ ancora configurato",
- "Ping querying your Solr Server" : "Ping del tuo server Solr",
- "Verifying Schema integrity" : "Sto verificando l'integritĆ  di Schema",
- "Test simple text extract query" : "Query di estrazione di testo semplice di prova",
- "Test update document query" : "Query di aggiornamento documento di prova",
- "Test search query" : "Query di ricerca di prova",
- "Removing the test document" : "Rimozione del documento di prova",
- "All test went fine. Saving your configuration" : "Tutti i test sono a posto. Salvo la tua configurazione",
- "Address-format incorrect" : "Formato dell'indirizzo non corretto",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr ĆØ attivo, in esecuzione e risponde al ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr non risponde al ping (Errore #%1$s)",
- "Schema is fine" : "Lo schema ĆØ corretto",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossibile verificare/correggere l'integritĆ  dello schema (Errore #%1$s)",
- "Text extracted" : "Testo estratto",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Estrazione non riuscita. Controlla la configurazione del tuo server Solr (Errore #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Errore durante l'aggiornamento del campo - Impossibile trovare il documento originale (Errore #%1$s)",
- "Error during commit (Error #%1$s)" : "Errore durante il commit (Errore #%1$s)",
- "Error while updating field (Error #%1$s)" : "Errore durante l'aggiornamento del campo (Errore #%1$s)",
- "Document updated" : "Documento aggiornato",
- "Found it" : "Trovato",
- "Found something, but not what was expected." : "Abbiamo trovato qualcosa, ma non ciĆ² che ci aspettavamo.",
- "Cannot find any document" : "Impossibile trovare alcun documento",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ricerca non riuscita. Controlla la configurazione del tuo server Solr (errore #%1$s)",
- "Test-document deleted" : "Documento di prova eliminato",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Impossibile eliminare il documento di prova. Controlla la configurazione del tuo server Solr (errore #%1$s)",
- "Your configuration has been saved" : "La tua configurazione ĆØ stata salvata",
- "Configuration could not be saved. Please reload this page." : "Salvataggio della configurazione non riuscito. Ricarica questa pagina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (ricerca testo integrale)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifica l'indirizzo del tuo Solr e il nome del motore da utilizzare.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se la servlet Solr non ĆØ in esecuzione, puoi trovare alcune guide su come installarla sul wiki.",
- "You can also find more information there about this interface." : "Puoi inoltre trovarci ulteriori informazioni su questa interfaccia.",
- "Saving" : "Salvataggio in corso",
- "Settings" : "Impostazioni",
- "Nextant version:" : "Versione di Nextant:",
- "Address of your Solr servlet:" : "Indirizzo della tua servlet Solr:",
- "Core:" : "Motore:",
- "Timeout (in seconds):" : "Tempo massimo (in secondi):",
- "Test and Save" : "Prova e salva",
- "Indexing Files" : "Indicizzazione file",
- "Maximum File Size (Mb):" : "Dimensione massima file (Mb):",
- "Edit your filters" : "Modifica i tuoi filtri",
- "Index Files Tree:" : "Indicizzazione albero dei file:",
- "Disable default search from Files" : "Disabilita la ricerca predefinita da File",
- "Index File Trash:" : "Indicizzazione cestino:",
- "Index Public Links:" : "Indicizzazione collegamenti pubblici:",
- "Index Federated Shares:" : "Indicizzazione condivisioni federate:",
- "Index External Storages:" : "Indicizzazione archiviazioni esterne:",
- "Index Encrypted Files:" : "Indicizzazione file cifrati:",
- "Last index:" : "Ultimo indice:",
- "Indexing Bookmarks" : "Indicizzazione segnalibri",
- "The App Bookmarks is not installed/enabled." : "L'applicazione dei segnalibri non ĆØ installata/abilitata",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'applicazione dei segnalibri ĆØ abilitata, i tuoi segnalibri saranno indicizzati.",
- "Checking" : "Controllo in corso",
- "Nextant Status" : "Stato di Nextant",
- "Resource Level:" : "Livello risorsa:",
- "Higher performance" : "Prestazioni piĆ¹ alte",
- "High performance" : "Alte prestazioni",
- "Medium performance" : "Medie prestazioni",
- "Low performance" : "Basse prestazioni",
- "Lower performance" : "Prestazioni piĆ¹ basse",
- "Live Index:" : "Indicizzazione live:",
- "Disabled" : "Disabilitato",
- "Using Semaphore" : "Utilizza semaforo",
- "Using Database" : "Utilizza database",
- "Minimum Background Index delay:" : "Ritardo minimo di indicizzazione in background:",
- "hours" : "ore",
- "Maximum Background Index delay:" : "Ritardo massimo di indicizzazione in background:",
- "days" : "giorni",
- "Nextcloud Cron:" : "Cron di Nextcloud:",
- "Number of documents:" : "Numero di documenti:",
- "Number of segments:" : "Numero di segmenti:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "consigliamo di eseguire la prima indicizzazione dei tuoi file utilizzando il comando ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Tuttavia, puoi forzarne l'avvio come un processo in background.",
- "Force first index as a cronjob" : "Forza la prima indicizzazione come un cronjob",
- "Force index" : "Forza l'indicizzazione",
- "Indexing is scheduled within the next few hours (Cron)" : "L'indicizzazione ĆØ pianificata nelle prossime ore (cron)",
- "Indexing in progress" : "Indicizzazione in corso",
- "Type of files to extract" : "Tipo di file da estrarre",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "File di testo (testo, HTML, sottotitoli, codice sorgente...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documento di Office",
- "Image (JPEG, TIFF)" : "Immagine (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "File audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Estensioni che desideri ignorare (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/ko.js b/l10n/ko.js
deleted file mode 100644
index 21d044e..0000000
--- a/l10n/ko.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "ķ“ė”ė”œ ģ“ė™",
- "never" : "ķ•˜ģ§€ ģ•ŠģŒ",
- "Nextant is not configured yet" : "Nextantź°€ ģ„¤ģ •ė˜ģ§€ ģ•Šģ•˜ģŒ",
- "Ping querying your Solr Server" : "Solr ģ„œė²„ģ— Ping ģ§ˆģ˜ ė³“ė‚“ėŠ” ģ¤‘",
- "Verifying Schema integrity" : "ģŠ¤ķ‚¤ė§ˆ ė¬“ź²°ģ„± ź²€ģ‚¬ ģ¤‘",
- "Test simple text extract query" : "ź°„ė‹Øķ•œ ķ…ģŠ¤ķŠø ģ¶”ģ¶œ ģ§ˆģ˜ ģ‹œķ—˜",
- "Test update document query" : "ė¬øģ„œ ģ—…ė°ģ“ķŠø ģ§ˆģ˜ ģ‹œķ—˜",
- "Test search query" : "ź²€ģƒ‰ ģ§ˆģ˜ ģ‹œķ—˜",
- "Removing the test document" : "ķ…ŒģŠ¤ķŠø ė¬øģ„œ ģ‚­ģ œ ģ¤‘",
- "All test went fine. Saving your configuration" : "ėŖØė“  ķ…ŒģŠ¤ķŠøź°€ ģ„±ź³µķ–ˆģŠµė‹ˆė‹¤. ģ„¤ģ •ģ„ ģ €ģž„ķ•˜ėŠ” ģ¤‘",
- "Apache Solr is up, running and responding to ping query" : "Apache Solrź°€ ģ‹¤ķ–‰ ģ¤‘ģ“ė©° ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•Ø",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solrź°€ ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•˜ģ§€ ģ•ŠģŒ(ģ˜¤ė„˜ #%1$s)",
- "Schema is fine" : "ģŠ¤ķ‚¤ė§ˆź°€ ģ˜¬ė°”ė¦„",
- "Error during commit (Error #%1$s)" : "ģ»¤ė°‹ ģ˜¤ė„˜(ģ˜¤ė„˜ #%1$s)",
- "Cannot find any document" : "ė¬øģ„œė„¼ ģ°¾ģ„ ģˆ˜ ģ—†ģŒ",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ź²€ģƒ‰ģ“ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤. Solr ģ„œė²„ģ˜ ģ„¤ģ •ģ„ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤(ģ˜¤ė„˜ #%1$s)",
- "Your configuration has been saved" : "ģ„¤ģ •ģ„ ģ €ģž„ķ•Ø",
- "Nextant (Full-Text Search)" : "Nextant(ģ „ė¬ø ź²€ģƒ‰)",
- "Specify the address of your Solr, and the name of the core to use." : "Solr ģ£¼ģ†Œ, ģ‚¬ģš©ķ•  ģ½”ģ–“ģ˜ ģ“ė¦„ģ„ ģ§€ģ •ķ•˜ģ‹­ģ‹œģ˜¤.",
- "Saving" : "ģ €ģž„ ģ¤‘",
- "Settings" : "ģ„¤ģ •",
- "Test and Save" : "ķ…ŒģŠ¤ķŠø ė° ģ €ģž„",
- "Indexing Files" : "ķŒŒģ¼ ģƒ‰ģøķ™”",
- "Edit your filters" : "ķ•„ķ„° ķŽøģ§‘",
- "Disable default search from Files" : "ķŒŒģ¼ źø°ė³ø ź²€ģƒ‰ ė¹„ķ™œģ„±ķ™”",
- "Index File Trash:" : "ķŒŒģ¼ ķœ“ģ§€ķ†µ ģƒ‰ģø:",
- "Indexing Bookmarks" : "ģ¦ź²Øģ°¾źø° ģƒ‰ģø ģ¤‘",
- "The App Bookmarks is not installed/enabled." : "ģ¦ź²Øģ°¾źø° ģ•±ģ“ ģ„¤ģ¹˜/ķ™œģ„±ķ™”ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.",
- "Checking" : "ź²€ģ‚¬ ģ¤‘",
- "Nextant Status" : "Nextant ģƒķƒœ",
- "Higher performance" : "ė§¤ģš° ė†’ģ€ ģ„±ėŠ„",
- "High performance" : "ė†’ģ€ ģ„±ėŠ„",
- "Medium performance" : "ģ¤‘ź°„ ģ„±ėŠ„",
- "Low performance" : "ė‚®ģ€ ģ„±ėŠ„",
- "Lower performance" : "ė§¤ģš° ė‚®ģ€ ģ„±ėŠ„",
- "Disabled" : "ė¹„ķ™œģ„±ķ™”ėØ",
- "Using Semaphore" : "ģ„øė§ˆķ¬ģ–“ ģ‚¬ģš©",
- "Using Database" : "ė°ģ“ķ„°ė² ģ“ģŠ¤ ģ‚¬ģš©",
- "hours" : "ģ‹œź°„",
- "days" : "ģ¼",
- "However, you can force it to be started as a background process." : "ė°±ź·øė¼ģš“ė“œ ķ”„ė”œģ„øģŠ¤ė”œ ģ§„ķ–‰ķ•˜ėŠ” ź²ƒģ„ ź°•ģ œķ•  ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.",
- "Force first index as a cronjob" : "ģ²« ģƒ‰ģø ģž‘ģ—…ģ„ cron ģž‘ģ—…ģœ¼ė”œ ź°•ģ œ",
- "Force index" : "ź°•ģ œ ģƒ‰ģø ģƒģ„±",
- "Indexing in progress" : "ģƒ‰ģø ģ§„ķ–‰ ģ¤‘",
- "Type of files to extract" : "ģ¶”ģ¶œķ•  ķŒŒģ¼ ģ¢…ė„˜",
- "Office Documents" : "ģ˜¤ķ”¼ģŠ¤ ė¬øģ„œ",
- "Extensions you wish to ignore (.java .xml)" : "ė¬“ģ‹œķ•  ķ™•ģž„ģž(.java .xml)"
-},
-"nplurals=1; plural=0;");
diff --git a/l10n/ko.json b/l10n/ko.json
deleted file mode 100644
index 8aca576..0000000
--- a/l10n/ko.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Go to folder" : "ķ“ė”ė”œ ģ“ė™",
- "never" : "ķ•˜ģ§€ ģ•ŠģŒ",
- "Nextant is not configured yet" : "Nextantź°€ ģ„¤ģ •ė˜ģ§€ ģ•Šģ•˜ģŒ",
- "Ping querying your Solr Server" : "Solr ģ„œė²„ģ— Ping ģ§ˆģ˜ ė³“ė‚“ėŠ” ģ¤‘",
- "Verifying Schema integrity" : "ģŠ¤ķ‚¤ė§ˆ ė¬“ź²°ģ„± ź²€ģ‚¬ ģ¤‘",
- "Test simple text extract query" : "ź°„ė‹Øķ•œ ķ…ģŠ¤ķŠø ģ¶”ģ¶œ ģ§ˆģ˜ ģ‹œķ—˜",
- "Test update document query" : "ė¬øģ„œ ģ—…ė°ģ“ķŠø ģ§ˆģ˜ ģ‹œķ—˜",
- "Test search query" : "ź²€ģƒ‰ ģ§ˆģ˜ ģ‹œķ—˜",
- "Removing the test document" : "ķ…ŒģŠ¤ķŠø ė¬øģ„œ ģ‚­ģ œ ģ¤‘",
- "All test went fine. Saving your configuration" : "ėŖØė“  ķ…ŒģŠ¤ķŠøź°€ ģ„±ź³µķ–ˆģŠµė‹ˆė‹¤. ģ„¤ģ •ģ„ ģ €ģž„ķ•˜ėŠ” ģ¤‘",
- "Apache Solr is up, running and responding to ping query" : "Apache Solrź°€ ģ‹¤ķ–‰ ģ¤‘ģ“ė©° ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•Ø",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solrź°€ ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•˜ģ§€ ģ•ŠģŒ(ģ˜¤ė„˜ #%1$s)",
- "Schema is fine" : "ģŠ¤ķ‚¤ė§ˆź°€ ģ˜¬ė°”ė¦„",
- "Error during commit (Error #%1$s)" : "ģ»¤ė°‹ ģ˜¤ė„˜(ģ˜¤ė„˜ #%1$s)",
- "Cannot find any document" : "ė¬øģ„œė„¼ ģ°¾ģ„ ģˆ˜ ģ—†ģŒ",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ź²€ģƒ‰ģ“ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤. Solr ģ„œė²„ģ˜ ģ„¤ģ •ģ„ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤(ģ˜¤ė„˜ #%1$s)",
- "Your configuration has been saved" : "ģ„¤ģ •ģ„ ģ €ģž„ķ•Ø",
- "Nextant (Full-Text Search)" : "Nextant(ģ „ė¬ø ź²€ģƒ‰)",
- "Specify the address of your Solr, and the name of the core to use." : "Solr ģ£¼ģ†Œ, ģ‚¬ģš©ķ•  ģ½”ģ–“ģ˜ ģ“ė¦„ģ„ ģ§€ģ •ķ•˜ģ‹­ģ‹œģ˜¤.",
- "Saving" : "ģ €ģž„ ģ¤‘",
- "Settings" : "ģ„¤ģ •",
- "Test and Save" : "ķ…ŒģŠ¤ķŠø ė° ģ €ģž„",
- "Indexing Files" : "ķŒŒģ¼ ģƒ‰ģøķ™”",
- "Edit your filters" : "ķ•„ķ„° ķŽøģ§‘",
- "Disable default search from Files" : "ķŒŒģ¼ źø°ė³ø ź²€ģƒ‰ ė¹„ķ™œģ„±ķ™”",
- "Index File Trash:" : "ķŒŒģ¼ ķœ“ģ§€ķ†µ ģƒ‰ģø:",
- "Indexing Bookmarks" : "ģ¦ź²Øģ°¾źø° ģƒ‰ģø ģ¤‘",
- "The App Bookmarks is not installed/enabled." : "ģ¦ź²Øģ°¾źø° ģ•±ģ“ ģ„¤ģ¹˜/ķ™œģ„±ķ™”ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.",
- "Checking" : "ź²€ģ‚¬ ģ¤‘",
- "Nextant Status" : "Nextant ģƒķƒœ",
- "Higher performance" : "ė§¤ģš° ė†’ģ€ ģ„±ėŠ„",
- "High performance" : "ė†’ģ€ ģ„±ėŠ„",
- "Medium performance" : "ģ¤‘ź°„ ģ„±ėŠ„",
- "Low performance" : "ė‚®ģ€ ģ„±ėŠ„",
- "Lower performance" : "ė§¤ģš° ė‚®ģ€ ģ„±ėŠ„",
- "Disabled" : "ė¹„ķ™œģ„±ķ™”ėØ",
- "Using Semaphore" : "ģ„øė§ˆķ¬ģ–“ ģ‚¬ģš©",
- "Using Database" : "ė°ģ“ķ„°ė² ģ“ģŠ¤ ģ‚¬ģš©",
- "hours" : "ģ‹œź°„",
- "days" : "ģ¼",
- "However, you can force it to be started as a background process." : "ė°±ź·øė¼ģš“ė“œ ķ”„ė”œģ„øģŠ¤ė”œ ģ§„ķ–‰ķ•˜ėŠ” ź²ƒģ„ ź°•ģ œķ•  ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.",
- "Force first index as a cronjob" : "ģ²« ģƒ‰ģø ģž‘ģ—…ģ„ cron ģž‘ģ—…ģœ¼ė”œ ź°•ģ œ",
- "Force index" : "ź°•ģ œ ģƒ‰ģø ģƒģ„±",
- "Indexing in progress" : "ģƒ‰ģø ģ§„ķ–‰ ģ¤‘",
- "Type of files to extract" : "ģ¶”ģ¶œķ•  ķŒŒģ¼ ģ¢…ė„˜",
- "Office Documents" : "ģ˜¤ķ”¼ģŠ¤ ė¬øģ„œ",
- "Extensions you wish to ignore (.java .xml)" : "ė¬“ģ‹œķ•  ķ™•ģž„ģž(.java .xml)"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/l10n/lv.js b/l10n/lv.js
deleted file mode 100644
index bfe4921..0000000
--- a/l10n/lv.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Doties uz mapi",
- "never" : "nekad",
- "Nextant is not configured yet" : "Nextant vēl nav konfigurēta",
- "Ping querying your Solr Server" : "Ping pieprasījumi jūsu Solr Serverim",
- "Verifying Schema integrity" : "Pārbaudīt shēmu integritāti",
- "Removing the test document" : "Testa dokumentu izņemÅ”ana",
- "All test went fine. Saving your configuration" : "Visi testi veiksmīgi. Saglabā konfigurāciju",
- "Schema is fine" : "Shēma ir laba",
- "Error during commit (Error #%1$s)" : "Izpildes laikā radās kļūda (Kļūda #%1$s)",
- "Cannot find any document" : "Nevar atrast nevienu dokumentu",
- "Saving" : "Saglabā",
- "Settings" : "Iestatījumi",
- "Test and Save" : "Pārbaudīt un saglabāt",
- "Edit your filters" : "Rediģēt jūsu filtrus",
- "Checking" : "Pārbaude",
- "Nextant Status" : "Nextant statuss",
- "Higher performance" : "Augstāka veiktspēja",
- "High performance" : "Augsta veiktspēja",
- "Medium performance" : "Vidējā veiktspēja",
- "Low performance" : "Zema veiktspēja",
- "Lower performance" : "Zemāka veiktspēja",
- "Disabled" : "Atspējots",
- "Using Database" : "Izmantojot datu bāzes",
- "hours" : "stundas",
- "days" : "dienas",
- "Extensions you wish to ignore (.java .xml)" : "PaplaÅ”inājumi, kurus vēlaties ignorēt. (.java .xml)"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/l10n/lv.json b/l10n/lv.json
deleted file mode 100644
index 784cf9f..0000000
--- a/l10n/lv.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Go to folder" : "Doties uz mapi",
- "never" : "nekad",
- "Nextant is not configured yet" : "Nextant vēl nav konfigurēta",
- "Ping querying your Solr Server" : "Ping pieprasījumi jūsu Solr Serverim",
- "Verifying Schema integrity" : "Pārbaudīt shēmu integritāti",
- "Removing the test document" : "Testa dokumentu izņemÅ”ana",
- "All test went fine. Saving your configuration" : "Visi testi veiksmīgi. Saglabā konfigurāciju",
- "Schema is fine" : "Shēma ir laba",
- "Error during commit (Error #%1$s)" : "Izpildes laikā radās kļūda (Kļūda #%1$s)",
- "Cannot find any document" : "Nevar atrast nevienu dokumentu",
- "Saving" : "Saglabā",
- "Settings" : "Iestatījumi",
- "Test and Save" : "Pārbaudīt un saglabāt",
- "Edit your filters" : "Rediģēt jūsu filtrus",
- "Checking" : "Pārbaude",
- "Nextant Status" : "Nextant statuss",
- "Higher performance" : "Augstāka veiktspēja",
- "High performance" : "Augsta veiktspēja",
- "Medium performance" : "Vidējā veiktspēja",
- "Low performance" : "Zema veiktspēja",
- "Lower performance" : "Zemāka veiktspēja",
- "Disabled" : "Atspējots",
- "Using Database" : "Izmantojot datu bāzes",
- "hours" : "stundas",
- "days" : "dienas",
- "Extensions you wish to ignore (.java .xml)" : "PaplaÅ”inājumi, kurus vēlaties ignorēt. (.java .xml)"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/l10n/mn.js b/l10n/mn.js
deleted file mode 100644
index b2ffc4a..0000000
--- a/l10n/mn.js
+++ /dev/null
@@ -1,46 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "хŠ°Š²Ń‚Š°Ń руу Š¾Ń‡Šøх",
- "Nextant is not configured yet" : "Nextant хŠ°Ń€Š°Š°Ń…Š°Š½ тŠ¾Ń…ŠøрууŠ»Š°Š³Š“Š°Š°Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°",
- "Verifying Schema integrity" : "схŠµŠ¼ŠøŠ¹Š½ Š±ŅÆрэŠ½ Š±Š°Š¹Š“Š»Ń‹Š³ шŠ°Š»Š³Š°Ń…",
- "Removing the test document" : "туршŠøŠ»Ń‚Ń‹Š½ Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š³ устŠ³Š°Ń…",
- "Address-format incorrect" : "Š„Š°ŃŠ³ хэŠ»Š±ŃŃ€ Š½ŃŒ Š±ŃƒŃ€ŃƒŃƒ",
- "Schema is fine" : "схŠµŠ¼ Š·ŅÆŠ³ŃŃŃ€",
- "Document updated" : "Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ шŠøŠ½ŃŃ‡Š»ŃŠ³Š“сэŠ½",
- "Found it" : "Š¾Š»Š“сŠ¾Š½",
- "Cannot find any document" : "яŠ¼Š°Ń€ ч Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ Š±Š°Š¹Ń…Š³ŅÆŠ¹",
- "Test-document deleted" : "Š¢ŃƒŃ€ŃˆŠøŠ»Ń‚Ń‹Š½-Š±Š°Ń€ŠøŠ¼Ń‚ устŠ³Š°Š³Š“сŠ°Š½",
- "Your configuration has been saved" : "тŠ°Š½Ń‹ тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“сŠ°Š½ ",
- "Configuration could not be saved. Please reload this page." : "тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹. Š”Š°Ń…ŠøŠ½ Š°Ń‡Š°Š°Š»Š»Š°Š½Š° уу",
- "Specify the address of your Solr, and the name of the core to use." : "Š¢Š°Š½Ń‹ Solr хŠ°ŃŠ³ Š·Š°Š°Š¶, Š¼Ó©Š½ Š°ŃˆŠøŠ³Š»Š°Ń… ŅÆŠ½Š“сэŠ½ Š½ŃŃ€.",
- "You can also find more information there about this interface." : "Š¢Š° Š¼Ó©Š½ эŠ½Ń ŠøŠ½Ń‚ŠµŃ€Ń„эŠ¹ŃŃŃŃ€ ŠøŠ»ŅÆŅÆ Šøх Š¼ŃŠ“ээŠ»ŃŠ» Š¾Š»Š¶ Š°Š²Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Ń‚Š¾Š¹.",
- "Saving" : "хŠ°Š“Š³Š°Š»Š°Š¼Š¶",
- "Settings" : "тŠ¾Ń…ŠøрŠ³Š¾Š¾",
- "Core:" : "Š³Š¾Š»",
- "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ¶ŅÆŅÆŠ»ŃŃ… фŠ°Š¹Š»ŃƒŃƒŠ“",
- "Maximum File Size (Mb):" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх фŠ°Š¹Š»Ń‹Š½ хэŠ¼Š¶ŃŃ (MB):",
- "Edit your filters" : "тŠ°Š½Ń‹ ŠæŠøŠ»Ń‚ŠµŃ€ŠøŠ¹Š³ Š·Š°ŃŠ²Š°Ń€Š»Š°Ń… ",
- "Last index:" : "сŅÆŅÆŠ»ŠøŠ¹Š½ ŠøŠ½Š“ŠµŠŗс",
- "Checking" : "хяŠ½Š°Š»Ń‚",
- "Resource Level:" : "Š½Ó©Ó©Ń†ŠøŠ¹Š½ тŅÆŠ²ŃˆŠøŠ½",
- "Higher performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "High performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Medium performance" : "Š“уŠ½Š“Š°Š¶ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Low performance" : "Š“Š¾Š¾Š“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Lower performance" : "хŠ°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Live Index:" : "Š±Š¾Š“Šøт ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Disabled" : "ŠøŠ“эŠ²Ń…ŠøŠ³ŅÆŠ¹",
- "Using Database" : "Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ сŠ°Š½ Š°ŃˆŠøŠ³Š»Š°Ń…",
- "Minimum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:",
- "hours" : "хуŠ³Š°Ń†Š°Š°",
- "Maximum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:",
- "days" : "Ó©Š“Ń€Ó©Ó©Ń€",
- "Number of documents:" : "Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š½ тŠ¾Š¾",
- "Number of segments:" : "сŠµŠ³Š¼ŠµŠ½Ń‚ŠøŠ¹Š½ тŠ¾Š¾:",
- "Force index" : "хŅÆчŠ½ŠøŠ¹ ŠøŠ½Š“ŠµŠŗс",
- "Type of files to extract" : "фŠ°Š¹Š»ŃƒŃƒŠ“ыŠ½ Ń‚Ó©Ń€Š»ŠøŠ¹Š³ Š³Š°Ń€Š³Š°Š¶ Š°Š²Š°Ń…",
- "Office Documents" : "Š¾Ń„Ń„ŠøсŠøŠ¹Š½ Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚",
- "Audio File (MP3, FLAC)" : "Š°ŃƒŠ“ŠøŠ¾ фŠ°Š¹Š» (MP3, FLAC)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/mn.json b/l10n/mn.json
deleted file mode 100644
index 3b71a1f..0000000
--- a/l10n/mn.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{ "translations": {
- "Go to folder" : "хŠ°Š²Ń‚Š°Ń руу Š¾Ń‡Šøх",
- "Nextant is not configured yet" : "Nextant хŠ°Ń€Š°Š°Ń…Š°Š½ тŠ¾Ń…ŠøрууŠ»Š°Š³Š“Š°Š°Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°",
- "Verifying Schema integrity" : "схŠµŠ¼ŠøŠ¹Š½ Š±ŅÆрэŠ½ Š±Š°Š¹Š“Š»Ń‹Š³ шŠ°Š»Š³Š°Ń…",
- "Removing the test document" : "туршŠøŠ»Ń‚Ń‹Š½ Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š³ устŠ³Š°Ń…",
- "Address-format incorrect" : "Š„Š°ŃŠ³ хэŠ»Š±ŃŃ€ Š½ŃŒ Š±ŃƒŃ€ŃƒŃƒ",
- "Schema is fine" : "схŠµŠ¼ Š·ŅÆŠ³ŃŃŃ€",
- "Document updated" : "Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ шŠøŠ½ŃŃ‡Š»ŃŠ³Š“сэŠ½",
- "Found it" : "Š¾Š»Š“сŠ¾Š½",
- "Cannot find any document" : "яŠ¼Š°Ń€ ч Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ Š±Š°Š¹Ń…Š³ŅÆŠ¹",
- "Test-document deleted" : "Š¢ŃƒŃ€ŃˆŠøŠ»Ń‚Ń‹Š½-Š±Š°Ń€ŠøŠ¼Ń‚ устŠ³Š°Š³Š“сŠ°Š½",
- "Your configuration has been saved" : "тŠ°Š½Ń‹ тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“сŠ°Š½ ",
- "Configuration could not be saved. Please reload this page." : "тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹. Š”Š°Ń…ŠøŠ½ Š°Ń‡Š°Š°Š»Š»Š°Š½Š° уу",
- "Specify the address of your Solr, and the name of the core to use." : "Š¢Š°Š½Ń‹ Solr хŠ°ŃŠ³ Š·Š°Š°Š¶, Š¼Ó©Š½ Š°ŃˆŠøŠ³Š»Š°Ń… ŅÆŠ½Š“сэŠ½ Š½ŃŃ€.",
- "You can also find more information there about this interface." : "Š¢Š° Š¼Ó©Š½ эŠ½Ń ŠøŠ½Ń‚ŠµŃ€Ń„эŠ¹ŃŃŃŃ€ ŠøŠ»ŅÆŅÆ Šøх Š¼ŃŠ“ээŠ»ŃŠ» Š¾Š»Š¶ Š°Š²Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Ń‚Š¾Š¹.",
- "Saving" : "хŠ°Š“Š³Š°Š»Š°Š¼Š¶",
- "Settings" : "тŠ¾Ń…ŠøрŠ³Š¾Š¾",
- "Core:" : "Š³Š¾Š»",
- "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ¶ŅÆŅÆŠ»ŃŃ… фŠ°Š¹Š»ŃƒŃƒŠ“",
- "Maximum File Size (Mb):" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх фŠ°Š¹Š»Ń‹Š½ хэŠ¼Š¶ŃŃ (MB):",
- "Edit your filters" : "тŠ°Š½Ń‹ ŠæŠøŠ»Ń‚ŠµŃ€ŠøŠ¹Š³ Š·Š°ŃŠ²Š°Ń€Š»Š°Ń… ",
- "Last index:" : "сŅÆŅÆŠ»ŠøŠ¹Š½ ŠøŠ½Š“ŠµŠŗс",
- "Checking" : "хяŠ½Š°Š»Ń‚",
- "Resource Level:" : "Š½Ó©Ó©Ń†ŠøŠ¹Š½ тŅÆŠ²ŃˆŠøŠ½",
- "Higher performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "High performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Medium performance" : "Š“уŠ½Š“Š°Š¶ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Low performance" : "Š“Š¾Š¾Š“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Lower performance" : "хŠ°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Live Index:" : "Š±Š¾Š“Šøт ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚",
- "Disabled" : "ŠøŠ“эŠ²Ń…ŠøŠ³ŅÆŠ¹",
- "Using Database" : "Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ сŠ°Š½ Š°ŃˆŠøŠ³Š»Š°Ń…",
- "Minimum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:",
- "hours" : "хуŠ³Š°Ń†Š°Š°",
- "Maximum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:",
- "days" : "Ó©Š“Ń€Ó©Ó©Ń€",
- "Number of documents:" : "Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š½ тŠ¾Š¾",
- "Number of segments:" : "сŠµŠ³Š¼ŠµŠ½Ń‚ŠøŠ¹Š½ тŠ¾Š¾:",
- "Force index" : "хŅÆчŠ½ŠøŠ¹ ŠøŠ½Š“ŠµŠŗс",
- "Type of files to extract" : "фŠ°Š¹Š»ŃƒŃƒŠ“ыŠ½ Ń‚Ó©Ń€Š»ŠøŠ¹Š³ Š³Š°Ń€Š³Š°Š¶ Š°Š²Š°Ń…",
- "Office Documents" : "Š¾Ń„Ń„ŠøсŠøŠ¹Š½ Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚",
- "Audio File (MP3, FLAC)" : "Š°ŃƒŠ“ŠøŠ¾ фŠ°Š¹Š» (MP3, FLAC)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/nb.js b/l10n/nb.js
deleted file mode 100644
index 9d9340c..0000000
--- a/l10n/nb.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "GĆ„ til mappe",
- "never" : "aldri",
- "Nextant is not configured yet" : "Nextant er ikke satt opp enda",
- "Ping querying your Solr Server" : "Sender ping-forespĆørsel til din Solr-tjener",
- "Verifying Schema integrity" : "Bekrefter Schema-integritet",
- "Test simple text extract query" : "Test enkel tekstutpakkingsspĆørring",
- "Test update document query" : "Test dokumentoppdateringsspĆørring",
- "Test search query" : "Test sĆøkestreng",
- "Removing the test document" : "Slett testdokumentet",
- "All test went fine. Saving your configuration" : "Alle tester bestƄtt. Lagrer oppsettet ditt",
- "Address-format incorrect" : "Feil format pƄ adresse",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr er oppe, kjĆører, og svarer pĆ„ ping-spĆørring",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarer ikke pĆ„ ping-spĆørring (Error #%1$s)",
- "Schema is fine" : "Alt vel med Schema",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Klarte ikke Ć„ bekrefte/fikse Schema-integritet (Feil #%1$s)",
- "Text extracted" : "Tekst utpakket",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Utpakking mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Feil ved oppdatering av felt - Kan ikke finne originaldokument - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Feil under innsendelse (Feil #%1$s)",
- "Error while updating field (Error #%1$s)" : "Feil under oppdatering av feil (Feil #%1$s)",
- "Document updated" : "Dokument oppdatert",
- "Found it" : "Fant det",
- "Found something, but not what was expected." : "Fant noe, men ikke det som var forventet.",
- "Cannot find any document" : "Kan ikke finne noe dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "SĆøk mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Test-document deleted" : "Testdokument slettet",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunne ikke slette test-dokument. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Your configuration has been saved" : "Dine innstillinger er lagret",
- "Configuration could not be saved. Please reload this page." : "Oppsettet kunne ikke lagres. Last inn denne siden pƄ ny.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (FulltekstsĆøk)",
- "Specify the address of your Solr, and the name of the core to use." : "Angi adressen for din Solr, og navnet pƄ kjernen som skal brukes.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Hvis du ikke har en Solr-servlet kjĆørende, kan du finne installasjonsguider pĆ„ wiki-en.",
- "You can also find more information there about this interface." : "Du kan ogsƄ finne mer informasjon der om dette grensesnittet.",
- "Saving" : "Lagrer",
- "Settings" : "Innstillinger",
- "Nextant version:" : "Nextant versjon:",
- "Address of your Solr servlet:" : "Adresse for din Solr-servlet:",
- "Core:" : "Kjerne:",
- "Timeout (in seconds):" : "Tidsavbrudd (i sekunder):",
- "Test and Save" : "Test og lagre",
- "Indexing Files" : "Indekserer filer",
- "Maximum File Size (Mb):" : "Maksimal filstĆørrelse (Mb):",
- "Edit your filters" : "Rediger dine filtre",
- "Index Files Tree:" : "Indekser filtre:",
- "Disable default search from Files" : "Skru av forvalgt sĆøk fra filer",
- "Index File Trash:" : "Indekser filpapirkurv:",
- "Index Public Links:" : "Indekser offentlige lenker:",
- "Index Federated Shares:" : "Indekser sammenknyttede delinger:",
- "Index External Storages:" : "Indekser eksterne lager:",
- "Index Encrypted Files:" : "Indekser krypterte filer:",
- "Last index:" : "Siste indeksering:",
- "Indexing Bookmarks" : "Indeksere bokmerker",
- "The App Bookmarks is not installed/enabled." : "Program-bokmerkene er ikke installert/pƄskrudd.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Program-bokmerker\" er pƄskrudd, dine bokmerker vil bli indeksert.",
- "Checking" : "Kontrollerer",
- "Nextant Status" : "Nextant-status",
- "Resource Level:" : "RessursnivƄ:",
- "Higher performance" : "HĆøyere ytelse",
- "High performance" : "HĆøy ytelse",
- "Medium performance" : "Medium ytelse",
- "Low performance" : "Lav ytelse",
- "Lower performance" : "Lavere ytelse",
- "Live Index:" : "Levende indeks:",
- "Disabled" : "Inaktiv",
- "Using Semaphore" : "Bruker Semaphore",
- "Using Database" : "Bruker database",
- "Minimum Background Index delay:" : "Minimumsforsinkelse for bakgrunnsindeksering:",
- "hours" : "timer",
- "Maximum Background Index delay:" : "Maksimumsforsinkelse for bakgrunnsindeksering:",
- "days" : "dager",
- "Nextcloud Cron:" : "Nextcloud-Cron:",
- "Number of documents:" : "Antall dokumenter:",
- "Number of segments:" : "Antall segmenter:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "det anbefales Ć„ bruke /occ nextant:index -kommandoen for fĆørste indeksering av filene dine.",
- "However, you can force it to be started as a background process." : "Dog kan du tvinge det til Ć„ starte som en bakgrunnsprosess.",
- "Force first index as a cronjob" : "Tving fĆørste indeksering som cronjobb",
- "Force index" : "Tving indeksering",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksering er planlagt i lĆøpet av de neste timene (Cron)",
- "Indexing in progress" : "Indeksering pƄgƄr",
- "Type of files to extract" : "Type filer Ć„ pakke ut",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstfil (Tekst, HTML, Undertekster, Kildekodeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumenter",
- "Image (JPEG, TIFF)" : "Bilde (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Lydfil (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Endelser du vil ignorere (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/nb.json b/l10n/nb.json
deleted file mode 100644
index 75bbc6a..0000000
--- a/l10n/nb.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "GĆ„ til mappe",
- "never" : "aldri",
- "Nextant is not configured yet" : "Nextant er ikke satt opp enda",
- "Ping querying your Solr Server" : "Sender ping-forespĆørsel til din Solr-tjener",
- "Verifying Schema integrity" : "Bekrefter Schema-integritet",
- "Test simple text extract query" : "Test enkel tekstutpakkingsspĆørring",
- "Test update document query" : "Test dokumentoppdateringsspĆørring",
- "Test search query" : "Test sĆøkestreng",
- "Removing the test document" : "Slett testdokumentet",
- "All test went fine. Saving your configuration" : "Alle tester bestƄtt. Lagrer oppsettet ditt",
- "Address-format incorrect" : "Feil format pƄ adresse",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr er oppe, kjĆører, og svarer pĆ„ ping-spĆørring",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarer ikke pĆ„ ping-spĆørring (Error #%1$s)",
- "Schema is fine" : "Alt vel med Schema",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Klarte ikke Ć„ bekrefte/fikse Schema-integritet (Feil #%1$s)",
- "Text extracted" : "Tekst utpakket",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Utpakking mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Feil ved oppdatering av felt - Kan ikke finne originaldokument - (Error #%1$s)",
- "Error during commit (Error #%1$s)" : "Feil under innsendelse (Feil #%1$s)",
- "Error while updating field (Error #%1$s)" : "Feil under oppdatering av feil (Feil #%1$s)",
- "Document updated" : "Dokument oppdatert",
- "Found it" : "Fant det",
- "Found something, but not what was expected." : "Fant noe, men ikke det som var forventet.",
- "Cannot find any document" : "Kan ikke finne noe dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "SĆøk mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Test-document deleted" : "Testdokument slettet",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunne ikke slette test-dokument. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)",
- "Your configuration has been saved" : "Dine innstillinger er lagret",
- "Configuration could not be saved. Please reload this page." : "Oppsettet kunne ikke lagres. Last inn denne siden pƄ ny.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (FulltekstsĆøk)",
- "Specify the address of your Solr, and the name of the core to use." : "Angi adressen for din Solr, og navnet pƄ kjernen som skal brukes.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Hvis du ikke har en Solr-servlet kjĆørende, kan du finne installasjonsguider pĆ„ wiki-en.",
- "You can also find more information there about this interface." : "Du kan ogsƄ finne mer informasjon der om dette grensesnittet.",
- "Saving" : "Lagrer",
- "Settings" : "Innstillinger",
- "Nextant version:" : "Nextant versjon:",
- "Address of your Solr servlet:" : "Adresse for din Solr-servlet:",
- "Core:" : "Kjerne:",
- "Timeout (in seconds):" : "Tidsavbrudd (i sekunder):",
- "Test and Save" : "Test og lagre",
- "Indexing Files" : "Indekserer filer",
- "Maximum File Size (Mb):" : "Maksimal filstĆørrelse (Mb):",
- "Edit your filters" : "Rediger dine filtre",
- "Index Files Tree:" : "Indekser filtre:",
- "Disable default search from Files" : "Skru av forvalgt sĆøk fra filer",
- "Index File Trash:" : "Indekser filpapirkurv:",
- "Index Public Links:" : "Indekser offentlige lenker:",
- "Index Federated Shares:" : "Indekser sammenknyttede delinger:",
- "Index External Storages:" : "Indekser eksterne lager:",
- "Index Encrypted Files:" : "Indekser krypterte filer:",
- "Last index:" : "Siste indeksering:",
- "Indexing Bookmarks" : "Indeksere bokmerker",
- "The App Bookmarks is not installed/enabled." : "Program-bokmerkene er ikke installert/pƄskrudd.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Program-bokmerker\" er pƄskrudd, dine bokmerker vil bli indeksert.",
- "Checking" : "Kontrollerer",
- "Nextant Status" : "Nextant-status",
- "Resource Level:" : "RessursnivƄ:",
- "Higher performance" : "HĆøyere ytelse",
- "High performance" : "HĆøy ytelse",
- "Medium performance" : "Medium ytelse",
- "Low performance" : "Lav ytelse",
- "Lower performance" : "Lavere ytelse",
- "Live Index:" : "Levende indeks:",
- "Disabled" : "Inaktiv",
- "Using Semaphore" : "Bruker Semaphore",
- "Using Database" : "Bruker database",
- "Minimum Background Index delay:" : "Minimumsforsinkelse for bakgrunnsindeksering:",
- "hours" : "timer",
- "Maximum Background Index delay:" : "Maksimumsforsinkelse for bakgrunnsindeksering:",
- "days" : "dager",
- "Nextcloud Cron:" : "Nextcloud-Cron:",
- "Number of documents:" : "Antall dokumenter:",
- "Number of segments:" : "Antall segmenter:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "det anbefales Ć„ bruke /occ nextant:index -kommandoen for fĆørste indeksering av filene dine.",
- "However, you can force it to be started as a background process." : "Dog kan du tvinge det til Ć„ starte som en bakgrunnsprosess.",
- "Force first index as a cronjob" : "Tving fĆørste indeksering som cronjobb",
- "Force index" : "Tving indeksering",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksering er planlagt i lĆøpet av de neste timene (Cron)",
- "Indexing in progress" : "Indeksering pƄgƄr",
- "Type of files to extract" : "Type filer Ć„ pakke ut",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstfil (Tekst, HTML, Undertekster, Kildekodeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumenter",
- "Image (JPEG, TIFF)" : "Bilde (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Lydfil (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Endelser du vil ignorere (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/nl.js b/l10n/nl.js
deleted file mode 100644
index b0a287a..0000000
--- a/l10n/nl.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ga naar map",
- "never" : "nooit",
- "Nextant is not configured yet" : "Nextant is nog niet geconfigureerd",
- "Ping querying your Solr Server" : "Ping bevraagt je Solr Server",
- "Verifying Schema integrity" : "Verifiƫren schema integriteit",
- "Test simple text extract query" : "Test enkelvoudige tekst uitvraagopvraag",
- "Test update document query" : "test bijwerken dopcumentopvraag",
- "Test search query" : "Test zoekopdracht",
- "Removing the test document" : "Verwijderen testdocument",
- "All test went fine. Saving your configuration" : "Alles ok. Bezig je configuratie op te slaan",
- "Address-format incorrect" : "OnjuistĀ adresformaat",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr draait en reageert op de ping opvraag",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr reageert niet op de ping opvraag (Fout #%1$s)",
- "Schema is fine" : "Schema is goed",
- "Unable to verify/fix schema integrity (Error #%1$s)" : " We kunnen het schema integriteit niet verifiƫren/herstellen (Error #%1$s)",
- "Text extracted" : "Tekst uitgepakt",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "UitpakkenĀ mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "FoutĀ bij bijwerken veld - kan originele document niet vinden - (Fout #%1$s)",
- "Error during commit (Error #%1$s)" : "Fout bij verzenden (Fout #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fout bij bijwerken veld (Fout #%1$s)",
- "Document updated" : "Document bijgewerkt",
- "Found it" : "Gevonden",
- "Found something, but not what was expected." : "Iets gevonden, maar niet precies wat we verwachtten.",
- "Cannot find any document" : "Kan geen document vinden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zoeken mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Test-document deleted" : "Test document verwijderd",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Konden testdocument niet verwijderen. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Your configuration has been saved" : "Je configuratie is opgeslagen",
- "Configuration could not be saved. Please reload this page." : "Configuratie werd niet opgeslagen. Herlaad deze pagina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (volledige tekst zoekfunctie)",
- "Specify the address of your Solr, and the name of the core to use." : "Geef het adres van Solr op, alsmede de naam van de te gebruiken kern.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Als je geen Solr servlet draait, vind jeĀ een handleiding voor de installatie in de wiki.",
- "You can also find more information there about this interface." : "Je kunt daar ook meer informatie over deze interface krijgen.",
- "Saving" : "Opslaan",
- "Settings" : "Instellingen",
- "Nextant version:" : "Nextant versie:",
- "Address of your Solr servlet:" : "Adres van je Solr servlet :",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "Time-out (in seconden) :",
- "Test and Save" : "Testen en opslaan",
- "Indexing Files" : "Indexeren bestanden",
- "Maximum File Size (Mb):" : "Maximale bestandsgrootte (Mb):",
- "Edit your filters" : "Bewerk je filters",
- "Index Files Tree:" : "Index bestandsboom:",
- "Disable default search from Files" : "De standaard zoekfunctie voor bestanden uitzetten",
- "Index File Trash:" : "Indexbestand Prullenbak:",
- "Index Public Links:" : "Index publieke links:",
- "Index Federated Shares:" : "Index gefedereerde shares:",
- "Index External Storages:" : "Index externe opslag:",
- "Index Encrypted Files:" : "Index versleutelde bestanden:",
- "Last index:" : "Laatste index:",
- "Indexing Bookmarks" : "bladwijzers indexeren",
- "The App Bookmarks is not installed/enabled." : "De app bladwijzers is niet ingeschakeld.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bladwijzers\" ingeschakeld,Ā je bladwijzers worden geĆÆndexeerd.",
- "Checking" : "Aan het controleren",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Bron niveau:",
- "Higher performance" : "Hoogste prestatie",
- "High performance" : "Hogere prestatie",
- "Medium performance" : "Gemiddelde prestatie",
- "Low performance" : "Lage prestatie",
- "Lower performance" : "Laagste prestatie",
- "Live Index:" : "Huidige index:",
- "Disabled" : "Uitgeschakeld",
- "Using Semaphore" : "Semaphore wordt gebruikt",
- "Using Database" : "Database wordt gebruikt",
- "Minimum Background Index delay:" : "Minimale achtergrond indexeringsvertraging:",
- "hours" : "uur",
- "Maximum Background Index delay:" : "Maximale achtergrond indexeringsvertraging:",
- "days" : "dagen",
- "Nextcloud Cron:" : "Nextcloud cron:",
- "Number of documents:" : "Aantal documenten:",
- "Number of segments:" : "Aantal segmenten:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Het wordt aanbevolen om bij de eerste indexering van de bestanden de ./occ nextant:index commando te gebruiken.",
- "However, you can force it to be started as a background process." : "Maar, je kunt ook forceren dat het als een achtergrondproces wordt gestart.",
- "Force first index as a cronjob" : "Eerste indexering als een cronjob forceren",
- "Force index" : "Indexering forceren",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexeren is geplandĀ in de komende paar uur (cron)",
- "Indexing in progress" : "Indexering is gaande",
- "Type of files to extract" : "Bestand voor uittrekken intypen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstbestand (Tekst, HTML, Ondertitels, Broncodeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office documenten",
- "Image (JPEG, TIFF)" : "Afbeelding (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audiobestand (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensies die je wilt negeren (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/nl.json b/l10n/nl.json
deleted file mode 100644
index 7984a3a..0000000
--- a/l10n/nl.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ga naar map",
- "never" : "nooit",
- "Nextant is not configured yet" : "Nextant is nog niet geconfigureerd",
- "Ping querying your Solr Server" : "Ping bevraagt je Solr Server",
- "Verifying Schema integrity" : "Verifiƫren schema integriteit",
- "Test simple text extract query" : "Test enkelvoudige tekst uitvraagopvraag",
- "Test update document query" : "test bijwerken dopcumentopvraag",
- "Test search query" : "Test zoekopdracht",
- "Removing the test document" : "Verwijderen testdocument",
- "All test went fine. Saving your configuration" : "Alles ok. Bezig je configuratie op te slaan",
- "Address-format incorrect" : "OnjuistĀ adresformaat",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr draait en reageert op de ping opvraag",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr reageert niet op de ping opvraag (Fout #%1$s)",
- "Schema is fine" : "Schema is goed",
- "Unable to verify/fix schema integrity (Error #%1$s)" : " We kunnen het schema integriteit niet verifiƫren/herstellen (Error #%1$s)",
- "Text extracted" : "Tekst uitgepakt",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "UitpakkenĀ mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "FoutĀ bij bijwerken veld - kan originele document niet vinden - (Fout #%1$s)",
- "Error during commit (Error #%1$s)" : "Fout bij verzenden (Fout #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fout bij bijwerken veld (Fout #%1$s)",
- "Document updated" : "Document bijgewerkt",
- "Found it" : "Gevonden",
- "Found something, but not what was expected." : "Iets gevonden, maar niet precies wat we verwachtten.",
- "Cannot find any document" : "Kan geen document vinden",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zoeken mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Test-document deleted" : "Test document verwijderd",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Konden testdocument niet verwijderen. Verifieer de configuratie van je Solr server (fout #%1$s)",
- "Your configuration has been saved" : "Je configuratie is opgeslagen",
- "Configuration could not be saved. Please reload this page." : "Configuratie werd niet opgeslagen. Herlaad deze pagina.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (volledige tekst zoekfunctie)",
- "Specify the address of your Solr, and the name of the core to use." : "Geef het adres van Solr op, alsmede de naam van de te gebruiken kern.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Als je geen Solr servlet draait, vind jeĀ een handleiding voor de installatie in de wiki.",
- "You can also find more information there about this interface." : "Je kunt daar ook meer informatie over deze interface krijgen.",
- "Saving" : "Opslaan",
- "Settings" : "Instellingen",
- "Nextant version:" : "Nextant versie:",
- "Address of your Solr servlet:" : "Adres van je Solr servlet :",
- "Core:" : "Kern:",
- "Timeout (in seconds):" : "Time-out (in seconden) :",
- "Test and Save" : "Testen en opslaan",
- "Indexing Files" : "Indexeren bestanden",
- "Maximum File Size (Mb):" : "Maximale bestandsgrootte (Mb):",
- "Edit your filters" : "Bewerk je filters",
- "Index Files Tree:" : "Index bestandsboom:",
- "Disable default search from Files" : "De standaard zoekfunctie voor bestanden uitzetten",
- "Index File Trash:" : "Indexbestand Prullenbak:",
- "Index Public Links:" : "Index publieke links:",
- "Index Federated Shares:" : "Index gefedereerde shares:",
- "Index External Storages:" : "Index externe opslag:",
- "Index Encrypted Files:" : "Index versleutelde bestanden:",
- "Last index:" : "Laatste index:",
- "Indexing Bookmarks" : "bladwijzers indexeren",
- "The App Bookmarks is not installed/enabled." : "De app bladwijzers is niet ingeschakeld.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bladwijzers\" ingeschakeld,Ā je bladwijzers worden geĆÆndexeerd.",
- "Checking" : "Aan het controleren",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Bron niveau:",
- "Higher performance" : "Hoogste prestatie",
- "High performance" : "Hogere prestatie",
- "Medium performance" : "Gemiddelde prestatie",
- "Low performance" : "Lage prestatie",
- "Lower performance" : "Laagste prestatie",
- "Live Index:" : "Huidige index:",
- "Disabled" : "Uitgeschakeld",
- "Using Semaphore" : "Semaphore wordt gebruikt",
- "Using Database" : "Database wordt gebruikt",
- "Minimum Background Index delay:" : "Minimale achtergrond indexeringsvertraging:",
- "hours" : "uur",
- "Maximum Background Index delay:" : "Maximale achtergrond indexeringsvertraging:",
- "days" : "dagen",
- "Nextcloud Cron:" : "Nextcloud cron:",
- "Number of documents:" : "Aantal documenten:",
- "Number of segments:" : "Aantal segmenten:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Het wordt aanbevolen om bij de eerste indexering van de bestanden de ./occ nextant:index commando te gebruiken.",
- "However, you can force it to be started as a background process." : "Maar, je kunt ook forceren dat het als een achtergrondproces wordt gestart.",
- "Force first index as a cronjob" : "Eerste indexering als een cronjob forceren",
- "Force index" : "Indexering forceren",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexeren is geplandĀ in de komende paar uur (cron)",
- "Indexing in progress" : "Indexering is gaande",
- "Type of files to extract" : "Bestand voor uittrekken intypen",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstbestand (Tekst, HTML, Ondertitels, Broncodeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Office documenten",
- "Image (JPEG, TIFF)" : "Afbeelding (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Audiobestand (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Extensies die je wilt negeren (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/pl.js b/l10n/pl.js
deleted file mode 100644
index 2993fe0..0000000
--- a/l10n/pl.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "PrzejdÅŗ do folderu",
- "never" : "nigdy",
- "Nextant is not configured yet" : "Nextant nie jest jeszcze skonfigurowany",
- "Ping querying your Solr Server" : "Pinguję twĆ³j serwer Solr",
- "Verifying Schema integrity" : "Sprawdzanie integralności Schema",
- "Test simple text extract query" : "Test podstawowego zapytania ekstrakcji tekstu",
- "Test update document query" : "Test zapytania aktualizacji dokumentu",
- "Test search query" : "Test kwerendy wyszukiwania",
- "Removing the test document" : "Usuwanie dokumentu testowego",
- "All test went fine. Saving your configuration" : "Wszystkie testy wypadły dobrze. Zapisywanie konfiguracji",
- "Address-format incorrect" : "Format adresu jest nieprawidłowy",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr jest uruchomiony i odpowiada na zapytania ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nie odpowiada na zapytania ping (Error #%1$s)",
- "Schema is fine" : "Schema jest poprawny",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Nie można zweryfikować/naprawić integralności struktury (Błąd #%1$s)",
- "Text extracted" : "Tekst wyodrębnony",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyodrębnianie nie powiodło się. SprawdÅŗ proszę konfigurację swojego serwera Solr (Błąd #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Błąd aktualizacji pola. Nie odnaleziono oryginalnego dokumentu (Błąd #%1$s)",
- "Error during commit (Error #%1$s)" : "Błąd przy zatwierdzaniu (Błąd#%1$s)",
- "Error while updating field (Error #%1$s)" : "Błąd w trakcie aktualizacji pola (Błąd #%1$s)",
- "Document updated" : "Dokument został zaktualizowany",
- "Found it" : "Znaleziono",
- "Found something, but not what was expected." : "Znaleziono coś, jednak nie to czego się spodziewano.",
- "Cannot find any document" : "Nie można znaleÅŗć żadnego dokumentu",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyszukiwanie nie powiodło się. Proszę sprawdzić konfigurację serwera Solr (Error #%1$s)",
- "Test-document deleted" : "Dokument testowy usunięty",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nie można usunąc dokumentu testowego. SprawdÅŗ konfigurację swojego serwera Solr (Błąd #%1$s)",
- "Your configuration has been saved" : "Konfiguracja została zapisana",
- "Configuration could not be saved. Please reload this page." : "Konfiguracja nie mogła zostać zapisana. Odśwież stronę.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Podaj adres swojego Solr i nazwę core do użycia.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Jeśli nie posiadasz własnego serwletu Solr, na wiki znajdziesz przewodnik jak go zainstalować.",
- "You can also find more information there about this interface." : "Znajdziesz tam też więcej informacji na temat tego interfejsu.",
- "Saving" : "Zapisuję",
- "Settings" : "Ustawienia",
- "Nextant version:" : "Wersja Nextant:",
- "Address of your Solr servlet:" : "Adres twojego serwletu Solr:",
- "Core:" : "Jądro:",
- "Timeout (in seconds):" : "Limit czasu (w sekundach):",
- "Test and Save" : "SprawdÅŗ i zapisz",
- "Indexing Files" : "Indeksowanie plikĆ³w",
- "Maximum File Size (Mb):" : "Maksymalny rozmiar pliku (MB):",
- "Edit your filters" : "Edytuj filtry",
- "Index Files Tree:" : "Indeksuj drzewo plikĆ³w:",
- "Disable default search from Files" : "Wyłącz domyślne wyszukiwanie z plikĆ³w",
- "Index File Trash:" : "Indeksuj pliki w koszu:",
- "Index Public Links:" : "Indeksuj publiczne linki:",
- "Index Federated Shares:" : "Indeksuj stowarzyszone udziały:",
- "Index External Storages:" : "Indeksuj magazyny zewnętrzne:",
- "Index Encrypted Files:" : "Indeksuj zaszyfrowane pliki:",
- "Last index:" : "Ostatnio indeksowane:",
- "Indexing Bookmarks" : "Indeksowanie zakładek",
- "The App Bookmarks is not installed/enabled." : "Aplikacja Zakładki nie jest zainstalowana/włączona.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplikacja Zakładki jest włączona, zakładki będą indeksowane.",
- "Checking" : "Sprawdzam",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Poziom zasobĆ³w:",
- "Higher performance" : "Wyższa wydajność",
- "High performance" : "Wysoka wydajność",
- "Medium performance" : "Średnia wydajność",
- "Low performance" : "Niska wydajność",
- "Lower performance" : "Niższa wydajność",
- "Live Index:" : "Aktualnie indeksowane:",
- "Disabled" : "Wyłączone",
- "Using Semaphore" : "Używam semafora.",
- "Using Database" : "Korzystanie z bazy danych",
- "Minimum Background Index delay:" : "Minimalne opĆ³Åŗnienie indeksowania w tle:",
- "hours" : "godziny",
- "Maximum Background Index delay:" : "Maksymalne opĆ³Åŗnienie indeksowania w tle:",
- "days" : "dni",
- "Nextcloud Cron:" : "Zadania cron Nextcloud:",
- "Number of documents:" : "Liczba dokumentĆ³w:",
- "Number of segments:" : "Liczba segmentĆ³w:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Zalecamy, aby pierwsze indeksowanie plikĆ³w wykonać poprzez komendę ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Jednakże możesz wymusić, aby startowało jako proces w tle.",
- "Force first index as a cronjob" : "Wymuś pierwsze indeksowanie poprzez zadanie crona",
- "Force index" : "Wymuś indeksowanie",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksowanie jest zaplanowane w ciągu kilku następnych godzin (cron)",
- "Indexing in progress" : "Indeksowanie w toku",
- "Type of files to extract" : "Rodzaj plikĆ³w do wyodrębnienia",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Pliki tekstowe (Text, Html, Napisy, Kod ÅŗrĆ³dłowy, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumenty biurowe",
- "Image (JPEG, TIFF)" : "Obraz (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Plik audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Rozszerzenia, ktĆ³re chcesz ignorować (.java .xml)"
-},
-"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/l10n/pl.json b/l10n/pl.json
deleted file mode 100644
index 4a9bea4..0000000
--- a/l10n/pl.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "PrzejdÅŗ do folderu",
- "never" : "nigdy",
- "Nextant is not configured yet" : "Nextant nie jest jeszcze skonfigurowany",
- "Ping querying your Solr Server" : "Pinguję twĆ³j serwer Solr",
- "Verifying Schema integrity" : "Sprawdzanie integralności Schema",
- "Test simple text extract query" : "Test podstawowego zapytania ekstrakcji tekstu",
- "Test update document query" : "Test zapytania aktualizacji dokumentu",
- "Test search query" : "Test kwerendy wyszukiwania",
- "Removing the test document" : "Usuwanie dokumentu testowego",
- "All test went fine. Saving your configuration" : "Wszystkie testy wypadły dobrze. Zapisywanie konfiguracji",
- "Address-format incorrect" : "Format adresu jest nieprawidłowy",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr jest uruchomiony i odpowiada na zapytania ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nie odpowiada na zapytania ping (Error #%1$s)",
- "Schema is fine" : "Schema jest poprawny",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Nie można zweryfikować/naprawić integralności struktury (Błąd #%1$s)",
- "Text extracted" : "Tekst wyodrębnony",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyodrębnianie nie powiodło się. SprawdÅŗ proszę konfigurację swojego serwera Solr (Błąd #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Błąd aktualizacji pola. Nie odnaleziono oryginalnego dokumentu (Błąd #%1$s)",
- "Error during commit (Error #%1$s)" : "Błąd przy zatwierdzaniu (Błąd#%1$s)",
- "Error while updating field (Error #%1$s)" : "Błąd w trakcie aktualizacji pola (Błąd #%1$s)",
- "Document updated" : "Dokument został zaktualizowany",
- "Found it" : "Znaleziono",
- "Found something, but not what was expected." : "Znaleziono coś, jednak nie to czego się spodziewano.",
- "Cannot find any document" : "Nie można znaleÅŗć żadnego dokumentu",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyszukiwanie nie powiodło się. Proszę sprawdzić konfigurację serwera Solr (Error #%1$s)",
- "Test-document deleted" : "Dokument testowy usunięty",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nie można usunąc dokumentu testowego. SprawdÅŗ konfigurację swojego serwera Solr (Błąd #%1$s)",
- "Your configuration has been saved" : "Konfiguracja została zapisana",
- "Configuration could not be saved. Please reload this page." : "Konfiguracja nie mogła zostać zapisana. Odśwież stronę.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)",
- "Specify the address of your Solr, and the name of the core to use." : "Podaj adres swojego Solr i nazwę core do użycia.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Jeśli nie posiadasz własnego serwletu Solr, na wiki znajdziesz przewodnik jak go zainstalować.",
- "You can also find more information there about this interface." : "Znajdziesz tam też więcej informacji na temat tego interfejsu.",
- "Saving" : "Zapisuję",
- "Settings" : "Ustawienia",
- "Nextant version:" : "Wersja Nextant:",
- "Address of your Solr servlet:" : "Adres twojego serwletu Solr:",
- "Core:" : "Jądro:",
- "Timeout (in seconds):" : "Limit czasu (w sekundach):",
- "Test and Save" : "SprawdÅŗ i zapisz",
- "Indexing Files" : "Indeksowanie plikĆ³w",
- "Maximum File Size (Mb):" : "Maksymalny rozmiar pliku (MB):",
- "Edit your filters" : "Edytuj filtry",
- "Index Files Tree:" : "Indeksuj drzewo plikĆ³w:",
- "Disable default search from Files" : "Wyłącz domyślne wyszukiwanie z plikĆ³w",
- "Index File Trash:" : "Indeksuj pliki w koszu:",
- "Index Public Links:" : "Indeksuj publiczne linki:",
- "Index Federated Shares:" : "Indeksuj stowarzyszone udziały:",
- "Index External Storages:" : "Indeksuj magazyny zewnętrzne:",
- "Index Encrypted Files:" : "Indeksuj zaszyfrowane pliki:",
- "Last index:" : "Ostatnio indeksowane:",
- "Indexing Bookmarks" : "Indeksowanie zakładek",
- "The App Bookmarks is not installed/enabled." : "Aplikacja Zakładki nie jest zainstalowana/włączona.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplikacja Zakładki jest włączona, zakładki będą indeksowane.",
- "Checking" : "Sprawdzam",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "Poziom zasobĆ³w:",
- "Higher performance" : "Wyższa wydajność",
- "High performance" : "Wysoka wydajność",
- "Medium performance" : "Średnia wydajność",
- "Low performance" : "Niska wydajność",
- "Lower performance" : "Niższa wydajność",
- "Live Index:" : "Aktualnie indeksowane:",
- "Disabled" : "Wyłączone",
- "Using Semaphore" : "Używam semafora.",
- "Using Database" : "Korzystanie z bazy danych",
- "Minimum Background Index delay:" : "Minimalne opĆ³Åŗnienie indeksowania w tle:",
- "hours" : "godziny",
- "Maximum Background Index delay:" : "Maksymalne opĆ³Åŗnienie indeksowania w tle:",
- "days" : "dni",
- "Nextcloud Cron:" : "Zadania cron Nextcloud:",
- "Number of documents:" : "Liczba dokumentĆ³w:",
- "Number of segments:" : "Liczba segmentĆ³w:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Zalecamy, aby pierwsze indeksowanie plikĆ³w wykonać poprzez komendę ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Jednakże możesz wymusić, aby startowało jako proces w tle.",
- "Force first index as a cronjob" : "Wymuś pierwsze indeksowanie poprzez zadanie crona",
- "Force index" : "Wymuś indeksowanie",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksowanie jest zaplanowane w ciągu kilku następnych godzin (cron)",
- "Indexing in progress" : "Indeksowanie w toku",
- "Type of files to extract" : "Rodzaj plikĆ³w do wyodrębnienia",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Pliki tekstowe (Text, Html, Napisy, Kod ÅŗrĆ³dłowy, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumenty biurowe",
- "Image (JPEG, TIFF)" : "Obraz (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Plik audio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Rozszerzenia, ktĆ³re chcesz ignorować (.java .xml)"
-},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
-} \ No newline at end of file
diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js
deleted file mode 100644
index 5960688..0000000
--- a/l10n/pt_BR.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Ir para a pasta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant nĆ£o estĆ” configurado ainda",
- "Ping querying your Solr Server" : "SolicitaĆ§Ć£o ping ao seu servidor Solr",
- "Verifying Schema integrity" : "Verificando integridade do Schema",
- "Test simple text extract query" : "Testar uma consulta de extraĆ§Ć£o simples de texto",
- "Test update document query" : "Testar uma consulta de atualizaĆ§Ć£o de documento",
- "Test search query" : "Testar uma consulta de pesquisa",
- "Removing the test document" : "Excluindo o documento de teste",
- "All test went fine. Saving your configuration" : "Todos os testes funcionaram. Salvando sua configuraĆ§Ć£o",
- "Address-format incorrect" : "Formato do endereƧo errado",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estƔ ativo, funcionando e respondendo Ơ solicitaƧƵes",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nĆ£o estĆ” respondendo Ć  solicitaĆ§Ć£o do ping (Erro #%1$s)",
- "Schema is fine" : "Schema estĆ” bom",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "NĆ£o foi possĆ­vel verificar/reparar a integridade do schema (Erro #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "A extraĆ§Ć£o falhou. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Erro atualizando campo - NĆ£o foi possĆ­vel encontrar o documento original - (Erro #%1$s)",
- "Error during commit (Error #%1$s)" : "Erro durante a efetivaĆ§Ć£o (Erro #%1$s)",
- "Error while updating field (Error #%1$s)" : "Erro ao atualizar campo (Erro #%1$s)",
- "Document updated" : "Documento atualizado",
- "Found it" : "Encontrado",
- "Found something, but not what was expected." : "Foi encontrado algo mas nĆ£o era o esperado.",
- "Cannot find any document" : "Nenhum documento encontrado",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Pesquisa falhou. Por favor, verifique a configuraĆ§Ć£o do seu servidor Solr (Erro #%1$s)",
- "Test-document deleted" : "Documento de teste excluĆ­do",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "NĆ£o foi possĆ­vel excluir o documento de teste. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)",
- "Your configuration has been saved" : "Sua configuraĆ§Ć£o foi salva",
- "Configuration could not be saved. Please reload this page." : "A configuraĆ§Ć£o nĆ£o foi salva. Atualize a pĆ”gina.",
- "Nextant" : "PrĆ³xima",
- "Nextant (Full-Text Search)" : "Nextant (Pesquisa por texto completo)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifique o endereƧo do seu Solr e o nome do nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se vocĆŖ nĆ£o tem um servlet Solr rodando, guias de instalaĆ§Ć£o podem ser encontrados no wiki.",
- "You can also find more information there about this interface." : "VocĆŖ tambĆ©m pode encontrar mais informaƧƵes lĆ” sobre essa interface.",
- "Saving" : "Salvando",
- "Settings" : "ConfiguraƧƵes",
- "Nextant version:" : "PrĆ³xima versĆ£o:",
- "Address of your Solr servlet:" : "EndereƧo de seu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Timeout (em segundos):",
- "Test and Save" : "Testar e Salvar",
- "Indexing Files" : "Indexando Arquivos",
- "Maximum File Size (Mb):" : "Tamanho MƔximo de um Arquivo (MB):",
- "Edit your filters" : "Editar seus filtros",
- "Index Files Tree:" : "Ɓrvore de Arquivos de ƍndice:",
- "Disable default search from Files" : "Desativar pesquisa padrĆ£o de arquivos",
- "Index File Trash:" : "Indexar Lixeira de Arquivos:",
- "Index Public Links:" : "Indexar Links PĆŗblicos:",
- "Index Federated Shares:" : "Indexar Compartilhamentos Federados:",
- "Index External Storages:" : "Indexar Armazenamentos Externos:",
- "Index Encrypted Files:" : "Indexar Arquivos Criptografados:",
- "Last index:" : "ƚltima IndexaĆ§Ć£o:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "O Aplicativo Marcadores nĆ£o estĆ” instalado/habilitado.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplicativo \"Bookmarks\" habilitado. Seus favoritos serĆ£o indexados.",
- "Checking" : "Verificando",
- "Nextant Status" : "Estado do Nextant",
- "Resource Level:" : "NĆ­vel de Recurso:",
- "Higher performance" : "Maior desempenho",
- "High performance" : "Alto desempenho",
- "Medium performance" : "Desempenho mƩdio",
- "Low performance" : "Desempenho baixo",
- "Lower performance" : "Desempenho mais baixo",
- "Live Index:" : "IndexaĆ§Ć£o ao Vivo:",
- "Disabled" : "Desabilitado",
- "Using Semaphore" : "Utilizando SemƔforo",
- "Using Database" : "Usando Banco de Dados",
- "Minimum Background Index delay:" : "Atraso MĆ­nimo na IndexaĆ§Ć£o em segundo plano:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Atraso MĆ”ximo na IndexaĆ§Ć£o em segundo plano:",
- "days" : "dias",
- "Nextcloud Cron:" : "Cron Nextcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Ɖ recomendĆ”vel fazer a primeira indexaĆ§Ć£o de seus arquivos usando o comando ./occ nextant: index.",
- "However, you can force it to be started as a background process." : "No entanto, vocĆŖ pode forƧƔ-lo a iniciar como um processo em segundo plano.",
- "Force first index as a cronjob" : "ForƧar 0 primeiro ƭndice como cronjob",
- "Force index" : "ForƧar indexaĆ§Ć£o",
- "Indexing is scheduled within the next few hours (Cron)" : "A indexaĆ§Ć£o estĆ” programada para dentro de algumas horas (Cron)",
- "Indexing in progress" : "IndexaĆ§Ć£o em progresso",
- "Type of files to extract" : "Tipos de arquivo a extrair",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Arquivo de Texto (Texto, HTML, Legendas, CĆ³digo Fonteā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos do Office",
- "Image (JPEG, TIFF)" : "Imagem (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Arquivo de Ɓudio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "ExtensƵes que vocĆŖ deseja ignorar (.java .xml)"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json
deleted file mode 100644
index 5c3f4e6..0000000
--- a/l10n/pt_BR.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Ir para a pasta",
- "never" : "nunca",
- "Nextant is not configured yet" : "Nextant nĆ£o estĆ” configurado ainda",
- "Ping querying your Solr Server" : "SolicitaĆ§Ć£o ping ao seu servidor Solr",
- "Verifying Schema integrity" : "Verificando integridade do Schema",
- "Test simple text extract query" : "Testar uma consulta de extraĆ§Ć£o simples de texto",
- "Test update document query" : "Testar uma consulta de atualizaĆ§Ć£o de documento",
- "Test search query" : "Testar uma consulta de pesquisa",
- "Removing the test document" : "Excluindo o documento de teste",
- "All test went fine. Saving your configuration" : "Todos os testes funcionaram. Salvando sua configuraĆ§Ć£o",
- "Address-format incorrect" : "Formato do endereƧo errado",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr estƔ ativo, funcionando e respondendo Ơ solicitaƧƵes",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nĆ£o estĆ” respondendo Ć  solicitaĆ§Ć£o do ping (Erro #%1$s)",
- "Schema is fine" : "Schema estĆ” bom",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "NĆ£o foi possĆ­vel verificar/reparar a integridade do schema (Erro #%1$s)",
- "Text extracted" : "Texto extraĆ­do",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "A extraĆ§Ć£o falhou. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Erro atualizando campo - NĆ£o foi possĆ­vel encontrar o documento original - (Erro #%1$s)",
- "Error during commit (Error #%1$s)" : "Erro durante a efetivaĆ§Ć£o (Erro #%1$s)",
- "Error while updating field (Error #%1$s)" : "Erro ao atualizar campo (Erro #%1$s)",
- "Document updated" : "Documento atualizado",
- "Found it" : "Encontrado",
- "Found something, but not what was expected." : "Foi encontrado algo mas nĆ£o era o esperado.",
- "Cannot find any document" : "Nenhum documento encontrado",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Pesquisa falhou. Por favor, verifique a configuraĆ§Ć£o do seu servidor Solr (Erro #%1$s)",
- "Test-document deleted" : "Documento de teste excluĆ­do",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "NĆ£o foi possĆ­vel excluir o documento de teste. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)",
- "Your configuration has been saved" : "Sua configuraĆ§Ć£o foi salva",
- "Configuration could not be saved. Please reload this page." : "A configuraĆ§Ć£o nĆ£o foi salva. Atualize a pĆ”gina.",
- "Nextant" : "PrĆ³xima",
- "Nextant (Full-Text Search)" : "Nextant (Pesquisa por texto completo)",
- "Specify the address of your Solr, and the name of the core to use." : "Especifique o endereƧo do seu Solr e o nome do nĆŗcleo a usar.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se vocĆŖ nĆ£o tem um servlet Solr rodando, guias de instalaĆ§Ć£o podem ser encontrados no wiki.",
- "You can also find more information there about this interface." : "VocĆŖ tambĆ©m pode encontrar mais informaƧƵes lĆ” sobre essa interface.",
- "Saving" : "Salvando",
- "Settings" : "ConfiguraƧƵes",
- "Nextant version:" : "PrĆ³xima versĆ£o:",
- "Address of your Solr servlet:" : "EndereƧo de seu servlet Solr:",
- "Core:" : "NĆŗcleo:",
- "Timeout (in seconds):" : "Timeout (em segundos):",
- "Test and Save" : "Testar e Salvar",
- "Indexing Files" : "Indexando Arquivos",
- "Maximum File Size (Mb):" : "Tamanho MƔximo de um Arquivo (MB):",
- "Edit your filters" : "Editar seus filtros",
- "Index Files Tree:" : "Ɓrvore de Arquivos de ƍndice:",
- "Disable default search from Files" : "Desativar pesquisa padrĆ£o de arquivos",
- "Index File Trash:" : "Indexar Lixeira de Arquivos:",
- "Index Public Links:" : "Indexar Links PĆŗblicos:",
- "Index Federated Shares:" : "Indexar Compartilhamentos Federados:",
- "Index External Storages:" : "Indexar Armazenamentos Externos:",
- "Index Encrypted Files:" : "Indexar Arquivos Criptografados:",
- "Last index:" : "ƚltima IndexaĆ§Ć£o:",
- "Indexing Bookmarks" : "Indexando Marcadores",
- "The App Bookmarks is not installed/enabled." : "O Aplicativo Marcadores nĆ£o estĆ” instalado/habilitado.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplicativo \"Bookmarks\" habilitado. Seus favoritos serĆ£o indexados.",
- "Checking" : "Verificando",
- "Nextant Status" : "Estado do Nextant",
- "Resource Level:" : "NĆ­vel de Recurso:",
- "Higher performance" : "Maior desempenho",
- "High performance" : "Alto desempenho",
- "Medium performance" : "Desempenho mƩdio",
- "Low performance" : "Desempenho baixo",
- "Lower performance" : "Desempenho mais baixo",
- "Live Index:" : "IndexaĆ§Ć£o ao Vivo:",
- "Disabled" : "Desabilitado",
- "Using Semaphore" : "Utilizando SemƔforo",
- "Using Database" : "Usando Banco de Dados",
- "Minimum Background Index delay:" : "Atraso MĆ­nimo na IndexaĆ§Ć£o em segundo plano:",
- "hours" : "horas",
- "Maximum Background Index delay:" : "Atraso MĆ”ximo na IndexaĆ§Ć£o em segundo plano:",
- "days" : "dias",
- "Nextcloud Cron:" : "Cron Nextcloud:",
- "Number of documents:" : "NĆŗmero de documentos:",
- "Number of segments:" : "NĆŗmero de segmentos:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Ɖ recomendĆ”vel fazer a primeira indexaĆ§Ć£o de seus arquivos usando o comando ./occ nextant: index.",
- "However, you can force it to be started as a background process." : "No entanto, vocĆŖ pode forƧƔ-lo a iniciar como um processo em segundo plano.",
- "Force first index as a cronjob" : "ForƧar 0 primeiro ƭndice como cronjob",
- "Force index" : "ForƧar indexaĆ§Ć£o",
- "Indexing is scheduled within the next few hours (Cron)" : "A indexaĆ§Ć£o estĆ” programada para dentro de algumas horas (Cron)",
- "Indexing in progress" : "IndexaĆ§Ć£o em progresso",
- "Type of files to extract" : "Tipos de arquivo a extrair",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Arquivo de Texto (Texto, HTML, Legendas, CĆ³digo Fonteā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Documentos do Office",
- "Image (JPEG, TIFF)" : "Imagem (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Arquivo de Ɓudio (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "ExtensƵes que vocĆŖ deseja ignorar (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/l10n/ru.js b/l10n/ru.js
deleted file mode 100644
index 5c7fee8..0000000
--- a/l10n/ru.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Š² ŠŗŠ°Ń‚Š°Š»Š¾Š³",
- "never" : "Š½ŠøŠŗŠ¾Š³Š“Š°",
- "Nextant is not configured yet" : "Nextant ŠµŃ‰Ń‘ Š½Šµ Š½Š°ŃŃ‚Ń€Š¾ŠµŠ½",
- "Ping querying your Solr Server" : "ŠŸŠøŠ½Š³ŃƒŠµŠ¼ сŠµŃ€Š²ŠµŃ€ Solr",
- "Verifying Schema integrity" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚Šø схŠµŠ¼Ń‹",
- "Test simple text extract query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя ŠæрŠ¾ŃŃ‚Š¾Š³Š¾ тŠµŠŗстŠ°",
- "Test update document query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° Š¾Š±Š½Š¾Š²Š»ŠµŠ½Šøя Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°",
- "Test search query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠæŠ¾ŠøсŠŗŠ°",
- "Removing the test document" : "Š£Š“Š°Š»ŠµŠ½ŠøŠµ ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Š¾Š³Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°",
- "All test went fine. Saving your configuration" : "Š’сŠµ ŠæрŠ¾Š²ŠµŃ€ŠŗŠø ŠæрŠ¾ŃˆŠ»Šø усŠæŠµŃˆŠ½Š¾. Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø",
- "Address-format incorrect" : "ŠŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ фŠ¾Ń€Š¼Š°Ń‚ Š°Š“рŠµŃŠ°",
- "Apache Solr is up, running and responding to ping query" : "Š”ŠµŃ€Š²Šøс Apache Solr Š·Š°ŠæущŠµŠ½ Šø Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Š”ŠµŃ€Š²Šøс Apache Solr Š½Šµ Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Schema is fine" : "Š”хŠµŠ¼Š° Š² ŠæŠ¾Ń€ŃŠ“ŠŗŠµ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Š²ŠµŃ€Šøть/ŠøсŠæрŠ°Š²Šøть цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚ŃŒ схŠµŠ¼Ń‹ (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Text extracted" : "Š¢ŠµŠŗст ŠøŠ·Š²Š»ŠµŃ‡Ń‘Š½",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½ŠøŠø. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń ā€” ŠŠµ уŠ“Š°Ń‘Ń‚ŃŃ Š½Š°Š¹Ń‚Šø ŠøсхŠ¾Š“Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ ā€” (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Error during commit (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° Š²Š¾ Š²Ń€ŠµŠ¼Ń Š·Š°ŠæŠøсŠø (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Document updated" : "Š”Š¾ŠŗуŠ¼ŠµŠ½Ń‚ Š¾Š±Š½Š¾Š²Š»Ń‘Š½",
- "Found it" : "ŠŠ°Š¹Š“ŠµŠ½Š¾",
- "Found something, but not what was expected." : "Š§Ń‚Š¾-тŠ¾ Š½Š°Š¹Š“ŠµŠ½Š¾, Š½Š¾ Š½Šµ тŠ¾, чтŠ¾ Š¾Š¶ŠøŠ“Š°Š»Š¾ŃŃŒ.",
- "Cannot find any document" : "ŠŠµ уŠ“Š°ŠµŃ‚ся Š½Š°Š¹Ń‚Šø Š½Šø Š¾Š“ŠøŠ½ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Š”Š±Š¾Š¹ ŠæŠ¾ŠøсŠŗŠ°. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø cŠµŃ€Š²Š»ŠµŃ‚Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Test-document deleted" : "ŠŸŃ€Š¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ уŠ“Š°Š»Ń‘Š½",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ŠŠµ уŠ“Š°Š»Š¾ŃŃŒ уŠ“Š°Š»Šøть ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Your configuration has been saved" : "Š’Š°ŃˆŠ° ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя Š±Ń‹Š»Š° сŠ¾Ń…Ń€Š°Š½ŠµŠ½Š°",
- "Configuration could not be saved. Please reload this page." : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š·Š°ŠæŠøсŠø ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø. ŠŸŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøтŠµ эту стрŠ°Š½Šøцу.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (ŠŸŠ¾Š»Š½Š¾Ń‚ŠµŠŗстŠ¾Š²Ń‹Š¹ ŠæŠ¾ŠøсŠŗ)",
- "Specify the address of your Solr, and the name of the core to use." : "Š£ŠŗŠ°Š¶ŠøтŠµ Š°Š“рŠµŃ Š²Š°ŃˆŠµŠ³Š¾ сŠµŃ€Š²ŠµŃ€Š° Solr Šø ŠøŠ¼Ń яŠ“рŠ° Š“Š»Ń ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½Šøя.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Š•ŃŠ»Šø у Š²Š°Ń Š½Šµ Š·Š°ŠæущŠµŠ½ сŠµŃ€Š²Š»ŠµŃ‚ Solr, Š¼Š¾Š¶ŠµŃ‚Šµ Š¾Š·Š½Š°ŠŗŠ¾Š¼Šøться Š½Š° wiki с руŠŗŠ¾Š²Š¾Š“стŠ²Š°Š¼Šø ŠæŠ¾ ŠµŠ³Š¾ устŠ°Š½Š¾Š²ŠŗŠµ.",
- "You can also find more information there about this interface." : "Š¢Š°Š¼ тŠ°Šŗ Š¶Šµ Š²Ń‹ Š½Š°Š¹Š“ётŠµ Š±Š¾Š»ŃŒŃˆŠµ ŠøŠ½Ń„Š¾Ń€Š¼Š°Ń†ŠøŠø Š¾ этŠ¾Š¼ ŠøŠ½Ń‚ŠµŃ€Ń„ŠµŠ¹ŃŠµ.",
- "Saving" : "Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ",
- "Settings" : "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø",
- "Nextant version:" : "Š’ŠµŃ€ŃŠøя Nextant:",
- "Address of your Solr servlet:" : "ŠŠ“рŠµŃ сŠµŃ€Š²Š»ŠµŃ‚Š° Solr:",
- "Core:" : "ŠÆŠ“рŠ¾:",
- "Timeout (in seconds):" : "Š¢Š°Š¹Š¼Š°ŃƒŃ‚ (Š² сŠµŠŗуŠ½Š“Š°Ń…):",
- "Test and Save" : "ŠŸŃ€Š¾Š²ŠµŃ€Šøть Šø Š·Š°ŠæŠøсŠ°Ń‚ŃŒ",
- "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя фŠ°Š¹Š»Š¾Š²",
- "Maximum File Size (Mb):" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ рŠ°Š·Š¼ŠµŃ€ фŠ°Š¹Š»Š° (ŠœŠ±):",
- "Edit your filters" : "Š ŠµŠ“Š°ŠŗтŠøрŠ¾Š²Š°Ń‚ŃŒ фŠøŠ»ŃŒŃ‚ры",
- "Index Files Tree:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š“ŠµŃ€ŠµŠ²Š¾ фŠ°Š¹Š»Š¾Š²",
- "Disable default search from Files" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡Šøть ŠæŠ¾ŠøсŠŗ ŠæŠ¾ уŠ¼Š¾Š»Ń‡Š°Š½Šøю Š¾Ń‚ фŠ°Š¹Š»Š¾Š²",
- "Index File Trash:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š² ŠŗŠ¾Ń€Š·ŠøŠ½Šµ:",
- "Index Public Links:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š¾Š±Ń‰ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Ń‹Šµ ссыŠ»ŠŗŠø:",
- "Index Federated Shares:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ фŠµŠ“ŠµŃ€Š°Ń‚ŠøŠ²Š½Ń‹Šµ Š¾Š±Ń‰ŠøŠµ рŠµŃŃƒŃ€ŃŃ‹:",
- "Index External Storages:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š²Š½ŠµŃˆŠ½ŠøŠµ хрŠ°Š½ŠøŠ»ŠøщŠ°:",
- "Index Encrypted Files:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°ŃˆŠøфрŠ¾Š²Š°Š½Š½Ń‹Šµ фŠ°Š¹Š»Ń‹:",
- "Last index:" : "ŠŸŠ¾ŃŠ»ŠµŠ“Š½ŃŃ ŠøŠ½Š“ŠµŠŗсŠ°Ń†Šøя:",
- "Indexing Bookmarks" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя Š·Š°ŠŗŠ»Š°Š“Š¾Šŗ",
- "The App Bookmarks is not installed/enabled." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š—Š°ŠŗŠ»Š°Š“ŠŗŠø Š½Šµ устŠ°Š½Š¾Š²Š»ŠµŠ½Š¾/Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Ā«Š—Š°ŠŗŠ»Š°Š“ŠŗŠøĀ» Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾, Š²Š°ŃˆŠø Š·Š°ŠŗŠ»Š°Š“ŠŗŠø Š±ŃƒŠ“ут ŠæрŠ¾ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Ń‹.",
- "Checking" : "ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŠ¼",
- "Nextant Status" : "Š”Š¾ŃŃ‚Š¾ŃŠ½ŠøŠµ Nexant",
- "Resource Level:" : "Š£Ń€Š¾Š²ŠµŠ½ŃŒ рŠµŃŃƒŃ€ŃŠ¾Š²:",
- "Higher performance" : "ŠŠ°ŠøŠ²Ń‹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "High performance" : "Š’ысŠ¾ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Medium performance" : "Š”рŠµŠ“Š½ŃŃ ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Low performance" : "ŠŠøŠ·ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Lower performance" : "ŠŠøŠ¶Š°Š¹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Live Index:" : "Š–ŠøŠ²Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ:",
- "Disabled" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾",
- "Using Semaphore" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ сŠµŠ¼Š°Ń„Š¾Ń€Ń‹",
- "Using Database" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ Š±Š°Š·Ńƒ Š“Š°Š½Š½Ń‹Ń…",
- "Minimum Background Index delay:" : "ŠœŠøŠ½ŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:",
- "hours" : "чŠ°ŃŠ¾Š²",
- "Maximum Background Index delay:" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:",
- "days" : "Š“Š½ŠµŠ¹",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š¾Š²:",
- "Number of segments:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ сŠµŠ³Š¼ŠµŠ½Ń‚Š¾Š²:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Š¼Ń‹ сŠ¾Š²ŠµŃ‚ŃƒŠµŠ¼ ŠæрŠ¾ŠøŠ·Š²ŠµŃŃ‚Šø ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ фŠ°Š¹Š»Š¾Š² ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ ŠŗŠ¾Š¼Š°Š½Š“ы ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Š¢ŠµŠ¼ Š½Šµ Š¼ŠµŠ½ŠµŠµ, Š²Ń‹ Š¼Š¾Š¶ŠµŃ‚Šµ ŠæрŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ Š·Š°ŠæустŠøть ŠµŠ³Š¾ фŠ¾Š½Š¾Š²Ń‹Š¼ ŠæрŠ¾Ń†ŠµŃŃŠ¾Š¼.",
- "Force first index as a cronjob" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°Š“Š°Ń‡ŠµŠ¹ ŠæŠ»Š°Š½ŠøрŠ¾Š²Ń‰ŠøŠŗŠ° cron",
- "Force index" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ",
- "Indexing is scheduled within the next few hours (Cron)" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š·Š°ŠæŠ»Š°Š½ŠøрŠ¾Š²Š°Š½Š¾ Š² тŠµŃ‡ŠµŠ½ŠøŠø Š½ŠµŃŠŗŠ¾Š»ŃŒŠŗŠøх чŠ°ŃŠ¾Š² (Š”ron)",
- "Indexing in progress" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š² ŠæрŠ¾Ń†ŠµŃŃŠµ",
- "Type of files to extract" : "Š¢ŠøŠæы фŠ°Š¹Š»Š¾Š² Š“Š»Ń ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Š¢ŠµŠŗстŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (Š¢ŠµŠŗст, HTML, суŠ±Ń‚Šøтры, ŠøсхŠ¾Š“Š½Ń‹Šµ ŠŗŠ¾Š“ы...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "ŠžŃ„ŠøсŠ½Ń‹Šµ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Ń‹",
- "Image (JPEG, TIFF)" : "Š˜Š·Š¾Š±Ń€Š°Š¶ŠµŠ½Šøя (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Š˜Š³Š½Š¾Ń€ŠøруŠµŠ¼Ń‹Šµ рŠ°ŃŃˆŠøрŠµŠ½Šøя (.java .xml)"
-},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/l10n/ru.json b/l10n/ru.json
deleted file mode 100644
index b4571b4..0000000
--- a/l10n/ru.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Š² ŠŗŠ°Ń‚Š°Š»Š¾Š³",
- "never" : "Š½ŠøŠŗŠ¾Š³Š“Š°",
- "Nextant is not configured yet" : "Nextant ŠµŃ‰Ń‘ Š½Šµ Š½Š°ŃŃ‚Ń€Š¾ŠµŠ½",
- "Ping querying your Solr Server" : "ŠŸŠøŠ½Š³ŃƒŠµŠ¼ сŠµŃ€Š²ŠµŃ€ Solr",
- "Verifying Schema integrity" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚Šø схŠµŠ¼Ń‹",
- "Test simple text extract query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя ŠæрŠ¾ŃŃ‚Š¾Š³Š¾ тŠµŠŗстŠ°",
- "Test update document query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° Š¾Š±Š½Š¾Š²Š»ŠµŠ½Šøя Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°",
- "Test search query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠæŠ¾ŠøсŠŗŠ°",
- "Removing the test document" : "Š£Š“Š°Š»ŠµŠ½ŠøŠµ ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Š¾Š³Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°",
- "All test went fine. Saving your configuration" : "Š’сŠµ ŠæрŠ¾Š²ŠµŃ€ŠŗŠø ŠæрŠ¾ŃˆŠ»Šø усŠæŠµŃˆŠ½Š¾. Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø",
- "Address-format incorrect" : "ŠŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ фŠ¾Ń€Š¼Š°Ń‚ Š°Š“рŠµŃŠ°",
- "Apache Solr is up, running and responding to ping query" : "Š”ŠµŃ€Š²Šøс Apache Solr Š·Š°ŠæущŠµŠ½ Šø Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Š”ŠµŃ€Š²Šøс Apache Solr Š½Šµ Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Schema is fine" : "Š”хŠµŠ¼Š° Š² ŠæŠ¾Ń€ŃŠ“ŠŗŠµ",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Š²ŠµŃ€Šøть/ŠøсŠæрŠ°Š²Šøть цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚ŃŒ схŠµŠ¼Ń‹ (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Text extracted" : "Š¢ŠµŠŗст ŠøŠ·Š²Š»ŠµŃ‡Ń‘Š½",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½ŠøŠø. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń ā€” ŠŠµ уŠ“Š°Ń‘Ń‚ŃŃ Š½Š°Š¹Ń‚Šø ŠøсхŠ¾Š“Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ ā€” (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Error during commit (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° Š²Š¾ Š²Ń€ŠµŠ¼Ń Š·Š°ŠæŠøсŠø (Error #%1$s)",
- "Error while updating field (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Document updated" : "Š”Š¾ŠŗуŠ¼ŠµŠ½Ń‚ Š¾Š±Š½Š¾Š²Š»Ń‘Š½",
- "Found it" : "ŠŠ°Š¹Š“ŠµŠ½Š¾",
- "Found something, but not what was expected." : "Š§Ń‚Š¾-тŠ¾ Š½Š°Š¹Š“ŠµŠ½Š¾, Š½Š¾ Š½Šµ тŠ¾, чтŠ¾ Š¾Š¶ŠøŠ“Š°Š»Š¾ŃŃŒ.",
- "Cannot find any document" : "ŠŠµ уŠ“Š°ŠµŃ‚ся Š½Š°Š¹Ń‚Šø Š½Šø Š¾Š“ŠøŠ½ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Š”Š±Š¾Š¹ ŠæŠ¾ŠøсŠŗŠ°. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø cŠµŃ€Š²Š»ŠµŃ‚Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Test-document deleted" : "ŠŸŃ€Š¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ уŠ“Š°Š»Ń‘Š½",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ŠŠµ уŠ“Š°Š»Š¾ŃŃŒ уŠ“Š°Š»Šøть ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)",
- "Your configuration has been saved" : "Š’Š°ŃˆŠ° ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя Š±Ń‹Š»Š° сŠ¾Ń…Ń€Š°Š½ŠµŠ½Š°",
- "Configuration could not be saved. Please reload this page." : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š·Š°ŠæŠøсŠø ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø. ŠŸŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøтŠµ эту стрŠ°Š½Šøцу.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (ŠŸŠ¾Š»Š½Š¾Ń‚ŠµŠŗстŠ¾Š²Ń‹Š¹ ŠæŠ¾ŠøсŠŗ)",
- "Specify the address of your Solr, and the name of the core to use." : "Š£ŠŗŠ°Š¶ŠøтŠµ Š°Š“рŠµŃ Š²Š°ŃˆŠµŠ³Š¾ сŠµŃ€Š²ŠµŃ€Š° Solr Šø ŠøŠ¼Ń яŠ“рŠ° Š“Š»Ń ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½Šøя.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Š•ŃŠ»Šø у Š²Š°Ń Š½Šµ Š·Š°ŠæущŠµŠ½ сŠµŃ€Š²Š»ŠµŃ‚ Solr, Š¼Š¾Š¶ŠµŃ‚Šµ Š¾Š·Š½Š°ŠŗŠ¾Š¼Šøться Š½Š° wiki с руŠŗŠ¾Š²Š¾Š“стŠ²Š°Š¼Šø ŠæŠ¾ ŠµŠ³Š¾ устŠ°Š½Š¾Š²ŠŗŠµ.",
- "You can also find more information there about this interface." : "Š¢Š°Š¼ тŠ°Šŗ Š¶Šµ Š²Ń‹ Š½Š°Š¹Š“ётŠµ Š±Š¾Š»ŃŒŃˆŠµ ŠøŠ½Ń„Š¾Ń€Š¼Š°Ń†ŠøŠø Š¾ этŠ¾Š¼ ŠøŠ½Ń‚ŠµŃ€Ń„ŠµŠ¹ŃŠµ.",
- "Saving" : "Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ",
- "Settings" : "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø",
- "Nextant version:" : "Š’ŠµŃ€ŃŠøя Nextant:",
- "Address of your Solr servlet:" : "ŠŠ“рŠµŃ сŠµŃ€Š²Š»ŠµŃ‚Š° Solr:",
- "Core:" : "ŠÆŠ“рŠ¾:",
- "Timeout (in seconds):" : "Š¢Š°Š¹Š¼Š°ŃƒŃ‚ (Š² сŠµŠŗуŠ½Š“Š°Ń…):",
- "Test and Save" : "ŠŸŃ€Š¾Š²ŠµŃ€Šøть Šø Š·Š°ŠæŠøсŠ°Ń‚ŃŒ",
- "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя фŠ°Š¹Š»Š¾Š²",
- "Maximum File Size (Mb):" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ рŠ°Š·Š¼ŠµŃ€ фŠ°Š¹Š»Š° (ŠœŠ±):",
- "Edit your filters" : "Š ŠµŠ“Š°ŠŗтŠøрŠ¾Š²Š°Ń‚ŃŒ фŠøŠ»ŃŒŃ‚ры",
- "Index Files Tree:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š“ŠµŃ€ŠµŠ²Š¾ фŠ°Š¹Š»Š¾Š²",
- "Disable default search from Files" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡Šøть ŠæŠ¾ŠøсŠŗ ŠæŠ¾ уŠ¼Š¾Š»Ń‡Š°Š½Šøю Š¾Ń‚ фŠ°Š¹Š»Š¾Š²",
- "Index File Trash:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š² ŠŗŠ¾Ń€Š·ŠøŠ½Šµ:",
- "Index Public Links:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š¾Š±Ń‰ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Ń‹Šµ ссыŠ»ŠŗŠø:",
- "Index Federated Shares:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ фŠµŠ“ŠµŃ€Š°Ń‚ŠøŠ²Š½Ń‹Šµ Š¾Š±Ń‰ŠøŠµ рŠµŃŃƒŃ€ŃŃ‹:",
- "Index External Storages:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š²Š½ŠµŃˆŠ½ŠøŠµ хрŠ°Š½ŠøŠ»ŠøщŠ°:",
- "Index Encrypted Files:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°ŃˆŠøфрŠ¾Š²Š°Š½Š½Ń‹Šµ фŠ°Š¹Š»Ń‹:",
- "Last index:" : "ŠŸŠ¾ŃŠ»ŠµŠ“Š½ŃŃ ŠøŠ½Š“ŠµŠŗсŠ°Ń†Šøя:",
- "Indexing Bookmarks" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя Š·Š°ŠŗŠ»Š°Š“Š¾Šŗ",
- "The App Bookmarks is not installed/enabled." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š—Š°ŠŗŠ»Š°Š“ŠŗŠø Š½Šµ устŠ°Š½Š¾Š²Š»ŠµŠ½Š¾/Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Ā«Š—Š°ŠŗŠ»Š°Š“ŠŗŠøĀ» Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾, Š²Š°ŃˆŠø Š·Š°ŠŗŠ»Š°Š“ŠŗŠø Š±ŃƒŠ“ут ŠæрŠ¾ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Ń‹.",
- "Checking" : "ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŠ¼",
- "Nextant Status" : "Š”Š¾ŃŃ‚Š¾ŃŠ½ŠøŠµ Nexant",
- "Resource Level:" : "Š£Ń€Š¾Š²ŠµŠ½ŃŒ рŠµŃŃƒŃ€ŃŠ¾Š²:",
- "Higher performance" : "ŠŠ°ŠøŠ²Ń‹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "High performance" : "Š’ысŠ¾ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Medium performance" : "Š”рŠµŠ“Š½ŃŃ ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Low performance" : "ŠŠøŠ·ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Lower performance" : "ŠŠøŠ¶Š°Š¹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ",
- "Live Index:" : "Š–ŠøŠ²Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ:",
- "Disabled" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾",
- "Using Semaphore" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ сŠµŠ¼Š°Ń„Š¾Ń€Ń‹",
- "Using Database" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ Š±Š°Š·Ńƒ Š“Š°Š½Š½Ń‹Ń…",
- "Minimum Background Index delay:" : "ŠœŠøŠ½ŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:",
- "hours" : "чŠ°ŃŠ¾Š²",
- "Maximum Background Index delay:" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:",
- "days" : "Š“Š½ŠµŠ¹",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š¾Š²:",
- "Number of segments:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ сŠµŠ³Š¼ŠµŠ½Ń‚Š¾Š²:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Š¼Ń‹ сŠ¾Š²ŠµŃ‚ŃƒŠµŠ¼ ŠæрŠ¾ŠøŠ·Š²ŠµŃŃ‚Šø ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ фŠ°Š¹Š»Š¾Š² ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ ŠŗŠ¾Š¼Š°Š½Š“ы ./occ nextant:index.",
- "However, you can force it to be started as a background process." : "Š¢ŠµŠ¼ Š½Šµ Š¼ŠµŠ½ŠµŠµ, Š²Ń‹ Š¼Š¾Š¶ŠµŃ‚Šµ ŠæрŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ Š·Š°ŠæустŠøть ŠµŠ³Š¾ фŠ¾Š½Š¾Š²Ń‹Š¼ ŠæрŠ¾Ń†ŠµŃŃŠ¾Š¼.",
- "Force first index as a cronjob" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°Š“Š°Ń‡ŠµŠ¹ ŠæŠ»Š°Š½ŠøрŠ¾Š²Ń‰ŠøŠŗŠ° cron",
- "Force index" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ",
- "Indexing is scheduled within the next few hours (Cron)" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š·Š°ŠæŠ»Š°Š½ŠøрŠ¾Š²Š°Š½Š¾ Š² тŠµŃ‡ŠµŠ½ŠøŠø Š½ŠµŃŠŗŠ¾Š»ŃŒŠŗŠøх чŠ°ŃŠ¾Š² (Š”ron)",
- "Indexing in progress" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š² ŠæрŠ¾Ń†ŠµŃŃŠµ",
- "Type of files to extract" : "Š¢ŠøŠæы фŠ°Š¹Š»Š¾Š² Š“Š»Ń ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Š¢ŠµŠŗстŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (Š¢ŠµŠŗст, HTML, суŠ±Ń‚Šøтры, ŠøсхŠ¾Š“Š½Ń‹Šµ ŠŗŠ¾Š“ы...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "ŠžŃ„ŠøсŠ½Ń‹Šµ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Ń‹",
- "Image (JPEG, TIFF)" : "Š˜Š·Š¾Š±Ń€Š°Š¶ŠµŠ½Šøя (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Š˜Š³Š½Š¾Ń€ŠøруŠµŠ¼Ń‹Šµ рŠ°ŃŃˆŠøрŠµŠ½Šøя (.java .xml)"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
-} \ No newline at end of file
diff --git a/l10n/sq.js b/l10n/sq.js
deleted file mode 100644
index 7b9fdd4..0000000
--- a/l10n/sq.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Shko te dosja",
- "never" : "kurrƫ",
- "Nextant is not configured yet" : "Nextant nuk ƫshtƫ konfiguruar akoma",
- "Ping querying your Solr Server" : "Ngacmoni duke pyetur Serverin Solr tuaj",
- "Verifying Schema integrity" : "Duke verifikuar integritetin e skemƫs",
- "Test simple text extract query" : "Testo tekst tƫ thjeshtƫ extract query",
- "Test update document query" : "Kƫrkoni testimin e pƫrditƫsimit tƫ dokumentit",
- "Test search query" : "Testo kƫrkesƫn",
- "Removing the test document" : "Duke fshirƫ dokumentat e testimit",
- "All test went fine. Saving your configuration" : "Tƫ gjitha testet ishin nƫ rregull. Duke ruajtur konfigurimet tuaja",
- "Address-format incorrect" : "Formati i adresƫs nuk ƫshtƫ i saktƫ",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr ƫshtƫ duke punuar, duke iu pƫrgjigjur dhe duke iu pƫrgjigjur pyetjes ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nuk po i pƫrgjigjet ping query (Gabimi #%1$s)",
- "Schema is fine" : "Skema ƫshtƫ nƫ rregull",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "E pamundur tƫ verifikohet/rregullohet integriteti i skemƫs (Gabimi #%1$s)",
- "Text extracted" : "Teksti u ekstraktua",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zgjerimi dƫshtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Gabim duke pƫrditƫsuar fushƫn - Nuk mund tƫ gjendet dokumenti origjinal - (Gabimi #%1$s)",
- "Error during commit (Error #%1$s)" : "Gabim gjatƫ kryerjes (Gabimi #%1$s)",
- "Error while updating field (Error #%1$s)" : "Gabim gjatƫ pƫrditƫsimit tƫ fushƫs (Gabimi #%1$s)",
- "Document updated" : "Dokumenti u pƫrditesua",
- "Found it" : "U gjet",
- "Found something, but not what was expected." : "Gjetƫm dicka, por jo atƫ qe pritej.",
- "Cannot find any document" : "Nuk mund tƫ gjejƫ asnjƫ dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Kƫrkmi dƫshtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Test-document deleted" : "Dokumenti-test u fshi",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nuk mund tƫ fshihej dokumenti-test. Ju lutem kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Your configuration has been saved" : "Konfigurimi juaj u ruajt",
- "Configuration could not be saved. Please reload this page." : "Konfigurimi nuk mundi tƫ ruhej. Ju lutem ringarkoni kƫtƫ faqe.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant( Kƫrkim tekst i plotƫ)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifikoni adresƫn e Solr-it tuaj dhe emrin e bƫrthamƫs pƫr t'u pƫrdorur.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Nƫse nuk keni servletƫ Solr-it qƫ ekzekutohet, udhƫzimet e instalimit mund tƫ gjenden nƫ wiki.",
- "You can also find more information there about this interface." : "Ju gjithashtu mund tƫ gjeni mƫ shumƫ informacion rreth kƫsaj ndƫrfaqeje.",
- "Saving" : "Po ruhet",
- "Settings" : "Konfigurimet",
- "Nextant version:" : "Versioni Nextant:",
- "Address of your Solr servlet:" : "Adresa e servlet-it tuaj Solr:",
- "Core:" : "Berthama:",
- "Timeout (in seconds):" : "Koha e mbetur(nƫ sekonda):",
- "Test and Save" : "Testo dhe Ruaj",
- "Indexing Files" : "Duke indeksuar Skedarƫt",
- "Maximum File Size (Mb):" : "Madhƫsia Maksimale e Skedarit (Mb):",
- "Edit your filters" : "Edito filterat e tua",
- "Index Files Tree:" : "Index Files Tree:",
- "Disable default search from Files" : "Ƈaktivizo kĆ«rkimin e parazgjedhur nga SkedarĆ«t",
- "Index File Trash:" : "Plehrat e Skedarit tƫ Indeksit:",
- "Index Public Links:" : "Lidhjet e Indeksit Publik:",
- "Index Federated Shares:" : "Shpƫrndarjet Index Federated:",
- "Index External Storages:" : "Ruajtjet Index External:",
- "Index Encrypted Files:" : "Skedarƫt Index Encrypted:",
- "Last index:" : "Indeksi i fundit:",
- "Indexing Bookmarks" : "Duke indeksuar Bookmarks",
- "The App Bookmarks is not installed/enabled." : "Aplikacioni Bookmarks nuk ƫshtƫ instaluar/aktivizuar.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Faqeshƫnuesi i aplikacioneve\" u aktivizua, faqeshƫnuesit tuaj do tƫ indeksohen.",
- "Checking" : "Duke kontrolluar",
- "Nextant Status" : "Statusi Nextant",
- "Resource Level:" : "Niveli i Burimeve:",
- "Higher performance" : "Performancƫ mƫ e lartƫ",
- "High performance" : "Performancƫ e lartƫ",
- "Medium performance" : "Performancƫ mesatare",
- "Low performance" : "Performancƫ e ulƫt",
- "Lower performance" : "Performancƫ mƫ e ulƫt",
- "Live Index:" : "Indeksi live:",
- "Disabled" : "I/E Ƨaktivizuar",
- "Using Semaphore" : "Duke pƫrdorur Semafor",
- "Using Database" : "Duke pƫrdorur Databazƫ",
- "Minimum Background Index delay:" : "Indeksi i Sfondit minimal tƫ vonesƫs:",
- "hours" : "orƫt",
- "Maximum Background Index delay:" : "Indeksi i Sfondit maksimal tƫ vonesƫs:",
- "days" : "ditƫ",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Numri i dokumenteve:",
- "Number of segments:" : "Numri i segmenteve:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Rekomandohet tƫ bƫni indeksimin e parƫ tƫ skedarƫve tuaj duke pƫrdorur ./occ nextant: command index.",
- "However, you can force it to be started as a background process." : "Megjithatƫ, mund ta detyrosh qƫ tƫ fillohet si njƫ proces sfondi.",
- "Force first index as a cronjob" : "Forco indeksin e parƫ si njƫ cronjob",
- "Force index" : "Sforco indeksin",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksimi ƫshtƫ i planifikuar brenda disa orƫve tƫ ardhshme (Cron)",
- "Indexing in progress" : "indeksimi ƫshtƫ nƫ proces",
- "Type of files to extract" : "Lloji i dosjeve pƫr tu ekstraktuar",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Skedar Teksti (Text, HTML, Subtitles, Source Codeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumentat Office",
- "Image (JPEG, TIFF)" : "Imazh (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Skedar Audioje (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Shtesat qƫ do doje tƫ injoroje (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/sq.json b/l10n/sq.json
deleted file mode 100644
index 2f59d12..0000000
--- a/l10n/sq.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Shko te dosja",
- "never" : "kurrƫ",
- "Nextant is not configured yet" : "Nextant nuk ƫshtƫ konfiguruar akoma",
- "Ping querying your Solr Server" : "Ngacmoni duke pyetur Serverin Solr tuaj",
- "Verifying Schema integrity" : "Duke verifikuar integritetin e skemƫs",
- "Test simple text extract query" : "Testo tekst tƫ thjeshtƫ extract query",
- "Test update document query" : "Kƫrkoni testimin e pƫrditƫsimit tƫ dokumentit",
- "Test search query" : "Testo kƫrkesƫn",
- "Removing the test document" : "Duke fshirƫ dokumentat e testimit",
- "All test went fine. Saving your configuration" : "Tƫ gjitha testet ishin nƫ rregull. Duke ruajtur konfigurimet tuaja",
- "Address-format incorrect" : "Formati i adresƫs nuk ƫshtƫ i saktƫ",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr ƫshtƫ duke punuar, duke iu pƫrgjigjur dhe duke iu pƫrgjigjur pyetjes ping",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nuk po i pƫrgjigjet ping query (Gabimi #%1$s)",
- "Schema is fine" : "Skema ƫshtƫ nƫ rregull",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "E pamundur tƫ verifikohet/rregullohet integriteti i skemƫs (Gabimi #%1$s)",
- "Text extracted" : "Teksti u ekstraktua",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zgjerimi dƫshtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Gabim duke pƫrditƫsuar fushƫn - Nuk mund tƫ gjendet dokumenti origjinal - (Gabimi #%1$s)",
- "Error during commit (Error #%1$s)" : "Gabim gjatƫ kryerjes (Gabimi #%1$s)",
- "Error while updating field (Error #%1$s)" : "Gabim gjatƫ pƫrditƫsimit tƫ fushƫs (Gabimi #%1$s)",
- "Document updated" : "Dokumenti u pƫrditesua",
- "Found it" : "U gjet",
- "Found something, but not what was expected." : "Gjetƫm dicka, por jo atƫ qe pritej.",
- "Cannot find any document" : "Nuk mund tƫ gjejƫ asnjƫ dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Kƫrkmi dƫshtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Test-document deleted" : "Dokumenti-test u fshi",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nuk mund tƫ fshihej dokumenti-test. Ju lutem kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)",
- "Your configuration has been saved" : "Konfigurimi juaj u ruajt",
- "Configuration could not be saved. Please reload this page." : "Konfigurimi nuk mundi tƫ ruhej. Ju lutem ringarkoni kƫtƫ faqe.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant( Kƫrkim tekst i plotƫ)",
- "Specify the address of your Solr, and the name of the core to use." : "Specifikoni adresƫn e Solr-it tuaj dhe emrin e bƫrthamƫs pƫr t'u pƫrdorur.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Nƫse nuk keni servletƫ Solr-it qƫ ekzekutohet, udhƫzimet e instalimit mund tƫ gjenden nƫ wiki.",
- "You can also find more information there about this interface." : "Ju gjithashtu mund tƫ gjeni mƫ shumƫ informacion rreth kƫsaj ndƫrfaqeje.",
- "Saving" : "Po ruhet",
- "Settings" : "Konfigurimet",
- "Nextant version:" : "Versioni Nextant:",
- "Address of your Solr servlet:" : "Adresa e servlet-it tuaj Solr:",
- "Core:" : "Berthama:",
- "Timeout (in seconds):" : "Koha e mbetur(nƫ sekonda):",
- "Test and Save" : "Testo dhe Ruaj",
- "Indexing Files" : "Duke indeksuar Skedarƫt",
- "Maximum File Size (Mb):" : "Madhƫsia Maksimale e Skedarit (Mb):",
- "Edit your filters" : "Edito filterat e tua",
- "Index Files Tree:" : "Index Files Tree:",
- "Disable default search from Files" : "Ƈaktivizo kĆ«rkimin e parazgjedhur nga SkedarĆ«t",
- "Index File Trash:" : "Plehrat e Skedarit tƫ Indeksit:",
- "Index Public Links:" : "Lidhjet e Indeksit Publik:",
- "Index Federated Shares:" : "Shpƫrndarjet Index Federated:",
- "Index External Storages:" : "Ruajtjet Index External:",
- "Index Encrypted Files:" : "Skedarƫt Index Encrypted:",
- "Last index:" : "Indeksi i fundit:",
- "Indexing Bookmarks" : "Duke indeksuar Bookmarks",
- "The App Bookmarks is not installed/enabled." : "Aplikacioni Bookmarks nuk ƫshtƫ instaluar/aktivizuar.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Faqeshƫnuesi i aplikacioneve\" u aktivizua, faqeshƫnuesit tuaj do tƫ indeksohen.",
- "Checking" : "Duke kontrolluar",
- "Nextant Status" : "Statusi Nextant",
- "Resource Level:" : "Niveli i Burimeve:",
- "Higher performance" : "Performancƫ mƫ e lartƫ",
- "High performance" : "Performancƫ e lartƫ",
- "Medium performance" : "Performancƫ mesatare",
- "Low performance" : "Performancƫ e ulƫt",
- "Lower performance" : "Performancƫ mƫ e ulƫt",
- "Live Index:" : "Indeksi live:",
- "Disabled" : "I/E Ƨaktivizuar",
- "Using Semaphore" : "Duke pƫrdorur Semafor",
- "Using Database" : "Duke pƫrdorur Databazƫ",
- "Minimum Background Index delay:" : "Indeksi i Sfondit minimal tƫ vonesƫs:",
- "hours" : "orƫt",
- "Maximum Background Index delay:" : "Indeksi i Sfondit maksimal tƫ vonesƫs:",
- "days" : "ditƫ",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Numri i dokumenteve:",
- "Number of segments:" : "Numri i segmenteve:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Rekomandohet tƫ bƫni indeksimin e parƫ tƫ skedarƫve tuaj duke pƫrdorur ./occ nextant: command index.",
- "However, you can force it to be started as a background process." : "Megjithatƫ, mund ta detyrosh qƫ tƫ fillohet si njƫ proces sfondi.",
- "Force first index as a cronjob" : "Forco indeksin e parƫ si njƫ cronjob",
- "Force index" : "Sforco indeksin",
- "Indexing is scheduled within the next few hours (Cron)" : "Indeksimi ƫshtƫ i planifikuar brenda disa orƫve tƫ ardhshme (Cron)",
- "Indexing in progress" : "indeksimi ƫshtƫ nƫ proces",
- "Type of files to extract" : "Lloji i dosjeve pƫr tu ekstraktuar",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Skedar Teksti (Text, HTML, Subtitles, Source Codeā€¦)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Dokumentat Office",
- "Image (JPEG, TIFF)" : "Imazh (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Skedar Audioje (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Shtesat qƫ do doje tƫ injoroje (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/sv.js b/l10n/sv.js
deleted file mode 100644
index efa051b..0000000
--- a/l10n/sv.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "GĆ„ till mapp",
- "never" : "aldrig",
- "Nextant is not configured yet" : "Nextant Ƥr inte konfigurerad Ƥn",
- "Ping querying your Solr Server" : "PingbegƤr din Solr Server",
- "Verifying Schema integrity" : "Verifierar Schemaintegritet",
- "Test simple text extract query" : "Testa enkel text extraktionsfrƄga",
- "Test update document query" : "Testa uppdatera dokumenteringsfrƄga",
- "Test search query" : "Testa sƶkfƶrfrƄgan",
- "Removing the test document" : "Tar bort testdokumentet",
- "All test went fine. Saving your configuration" : "Alla test gick bra. Sparar konfigurationen",
- "Address-format incorrect" : "Adress-format inkorrekt",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƥr online och svarar pƄ ping-fƶrfrƄgan",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarar inte pƄ ping-fƶrfrƄgningar (Fel #%1$s)",
- "Schema is fine" : "Schema fungerar",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Ofƶrmƶgen att verifiera/fixa schemaintegritet (Fel #%1$s)",
- "Text extracted" : "Text extraherad",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahering misslyckades. Fƶrsƶk kontrollera konfigurationen av din Solr-server (Fel #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fel nƤr fƤlt uppdaterades - Kunde inte hitta originaldokumentet - (Fel #%1$s)",
- "Error during commit (Error #%1$s)" : "Fel under ƶverlƤmning (Fel #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fel vid fƤltuppdatering (Fel #%1$s)",
- "Document updated" : "Dokument uppdaterat",
- "Found it" : "Hittades",
- "Found something, but not what was expected." : "Hittade nƄgonting, men inte vad som fƶrvƤntades.",
- "Cannot find any document" : "Kan inte hitta nƄgra dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Test-document deleted" : "Test-dokument borttagen",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunde inte ta bort test-dokument. VƤnligen kolla konfigurationen av din Solr server (Fel #%1$s)",
- "Your configuration has been saved" : "Din konfiguration har sparats",
- "Configuration could not be saved. Please reload this page." : "Konfiguration kunde inte sparas. Var god ladda om denna sida.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Fulltextsƶkning)",
- "Specify the address of your Solr, and the name of the core to use." : "Specificera adressen till din Solr och namnet till kƤrnan som ska anvƤndas",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Om du inte har en Solr servlet, installationsguider kan hittas pƄ wikin.",
- "You can also find more information there about this interface." : "Du kan ocksƄ hitta mer information dƤr om detta grƤnssnitt.",
- "Saving" : "Sparar",
- "Settings" : "InstƤllningar",
- "Nextant version:" : "Nextant-version:",
- "Address of your Solr servlet:" : "Adress av din Solr servlet:",
- "Core:" : "KƤrna:",
- "Timeout (in seconds):" : "Timeout (i sekunder):",
- "Test and Save" : "Testa och Spara",
- "Indexing Files" : "Indexerar Filer",
- "Maximum File Size (Mb):" : "Maximal filstorlek (Mb):",
- "Edit your filters" : "Redigera dina filter",
- "Index Files Tree:" : "IndexfiltrƤd:",
- "Disable default search from Files" : "Avaktivera standardsƶkning frƄn Filer",
- "Index File Trash:" : "Indexera papperskorg:",
- "Index Public Links:" : "Indexera publika lƤnkar:",
- "Index Federated Shares:" : "Indexera federerade delningar:",
- "Index External Storages:" : "Indexera Externa lagringsenheter:",
- "Index Encrypted Files:" : "Indexera krypterade filer:",
- "Last index:" : "Sista index:",
- "Indexing Bookmarks" : "Indexerar bokmƤrken",
- "The App Bookmarks is not installed/enabled." : "Appen bokmƤrken Ƥr inte installerad/aktiverad.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App bokmƤrken\" aktiverad, dina bokmƤrken kommer indexeras.",
- "Checking" : "Kontrollerar",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "ResursnivƄ:",
- "Higher performance" : "Hƶgre prestanda",
- "High performance" : "Hƶg prestanda",
- "Medium performance" : "Medium prestanda",
- "Low performance" : "LĆ„g prestanda",
- "Lower performance" : "LƤgre prestanda",
- "Live Index:" : "Live Index:",
- "Disabled" : "Inaktiverad",
- "Using Semaphore" : "AnvƤnder semafor",
- "Using Database" : "AnvƤnder databas",
- "Minimum Background Index delay:" : "Minsta fƶrdrƶjning fƶr bakgrundsindexering:",
- "hours" : "timmar",
- "Maximum Background Index delay:" : "Max fƶrdrƶjning av bakgrundsindexering:",
- "days" : "dagar",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Antal dokument:",
- "Number of segments:" : "Antal segment:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Det Ƥr rekommenderat att gƶra den fƶrsta indexeringen av dina filer med kommandot: ./occ nextant:index",
- "However, you can force it to be started as a background process." : "Dock, du kan tvinga det att starta som en bakgrundsprocess.",
- "Force first index as a cronjob" : "Tvinga fƶrsta index som ett cronjob",
- "Force index" : "Tvinga Indexering",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexering Ƥr schemalagt inom de nƤrmaste timmarna (Cron)",
- "Indexing in progress" : "Indexering pƄgƄr",
- "Type of files to extract" : "Typ av fil att extrahera",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Textfil (Text, HTML, undertexter, KƤllkod...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Officedokument",
- "Image (JPEG, TIFF)" : "Bild (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ljudfil (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "FilƤndelser du vill ignorera (.java .xml)"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/l10n/sv.json b/l10n/sv.json
deleted file mode 100644
index b2293ac..0000000
--- a/l10n/sv.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "GĆ„ till mapp",
- "never" : "aldrig",
- "Nextant is not configured yet" : "Nextant Ƥr inte konfigurerad Ƥn",
- "Ping querying your Solr Server" : "PingbegƤr din Solr Server",
- "Verifying Schema integrity" : "Verifierar Schemaintegritet",
- "Test simple text extract query" : "Testa enkel text extraktionsfrƄga",
- "Test update document query" : "Testa uppdatera dokumenteringsfrƄga",
- "Test search query" : "Testa sƶkfƶrfrƄgan",
- "Removing the test document" : "Tar bort testdokumentet",
- "All test went fine. Saving your configuration" : "Alla test gick bra. Sparar konfigurationen",
- "Address-format incorrect" : "Adress-format inkorrekt",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƥr online och svarar pƄ ping-fƶrfrƄgan",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarar inte pƄ ping-fƶrfrƄgningar (Fel #%1$s)",
- "Schema is fine" : "Schema fungerar",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Ofƶrmƶgen att verifiera/fixa schemaintegritet (Fel #%1$s)",
- "Text extracted" : "Text extraherad",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahering misslyckades. Fƶrsƶk kontrollera konfigurationen av din Solr-server (Fel #%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Fel nƤr fƤlt uppdaterades - Kunde inte hitta originaldokumentet - (Fel #%1$s)",
- "Error during commit (Error #%1$s)" : "Fel under ƶverlƤmning (Fel #%1$s)",
- "Error while updating field (Error #%1$s)" : "Fel vid fƤltuppdatering (Fel #%1$s)",
- "Document updated" : "Dokument uppdaterat",
- "Found it" : "Hittades",
- "Found something, but not what was expected." : "Hittade nƄgonting, men inte vad som fƶrvƤntades.",
- "Cannot find any document" : "Kan inte hitta nƄgra dokument",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)",
- "Test-document deleted" : "Test-dokument borttagen",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunde inte ta bort test-dokument. VƤnligen kolla konfigurationen av din Solr server (Fel #%1$s)",
- "Your configuration has been saved" : "Din konfiguration har sparats",
- "Configuration could not be saved. Please reload this page." : "Konfiguration kunde inte sparas. Var god ladda om denna sida.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Fulltextsƶkning)",
- "Specify the address of your Solr, and the name of the core to use." : "Specificera adressen till din Solr och namnet till kƤrnan som ska anvƤndas",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Om du inte har en Solr servlet, installationsguider kan hittas pƄ wikin.",
- "You can also find more information there about this interface." : "Du kan ocksƄ hitta mer information dƤr om detta grƤnssnitt.",
- "Saving" : "Sparar",
- "Settings" : "InstƤllningar",
- "Nextant version:" : "Nextant-version:",
- "Address of your Solr servlet:" : "Adress av din Solr servlet:",
- "Core:" : "KƤrna:",
- "Timeout (in seconds):" : "Timeout (i sekunder):",
- "Test and Save" : "Testa och Spara",
- "Indexing Files" : "Indexerar Filer",
- "Maximum File Size (Mb):" : "Maximal filstorlek (Mb):",
- "Edit your filters" : "Redigera dina filter",
- "Index Files Tree:" : "IndexfiltrƤd:",
- "Disable default search from Files" : "Avaktivera standardsƶkning frƄn Filer",
- "Index File Trash:" : "Indexera papperskorg:",
- "Index Public Links:" : "Indexera publika lƤnkar:",
- "Index Federated Shares:" : "Indexera federerade delningar:",
- "Index External Storages:" : "Indexera Externa lagringsenheter:",
- "Index Encrypted Files:" : "Indexera krypterade filer:",
- "Last index:" : "Sista index:",
- "Indexing Bookmarks" : "Indexerar bokmƤrken",
- "The App Bookmarks is not installed/enabled." : "Appen bokmƤrken Ƥr inte installerad/aktiverad.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App bokmƤrken\" aktiverad, dina bokmƤrken kommer indexeras.",
- "Checking" : "Kontrollerar",
- "Nextant Status" : "Nextant Status",
- "Resource Level:" : "ResursnivƄ:",
- "Higher performance" : "Hƶgre prestanda",
- "High performance" : "Hƶg prestanda",
- "Medium performance" : "Medium prestanda",
- "Low performance" : "LĆ„g prestanda",
- "Lower performance" : "LƤgre prestanda",
- "Live Index:" : "Live Index:",
- "Disabled" : "Inaktiverad",
- "Using Semaphore" : "AnvƤnder semafor",
- "Using Database" : "AnvƤnder databas",
- "Minimum Background Index delay:" : "Minsta fƶrdrƶjning fƶr bakgrundsindexering:",
- "hours" : "timmar",
- "Maximum Background Index delay:" : "Max fƶrdrƶjning av bakgrundsindexering:",
- "days" : "dagar",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "Antal dokument:",
- "Number of segments:" : "Antal segment:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Det Ƥr rekommenderat att gƶra den fƶrsta indexeringen av dina filer med kommandot: ./occ nextant:index",
- "However, you can force it to be started as a background process." : "Dock, du kan tvinga det att starta som en bakgrundsprocess.",
- "Force first index as a cronjob" : "Tvinga fƶrsta index som ett cronjob",
- "Force index" : "Tvinga Indexering",
- "Indexing is scheduled within the next few hours (Cron)" : "Indexering Ƥr schemalagt inom de nƤrmaste timmarna (Cron)",
- "Indexing in progress" : "Indexering pƄgƄr",
- "Type of files to extract" : "Typ av fil att extrahera",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Textfil (Text, HTML, undertexter, KƤllkod...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Officedokument",
- "Image (JPEG, TIFF)" : "Bild (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ljudfil (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "FilƤndelser du vill ignorera (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/l10n/tr.js b/l10n/tr.js
deleted file mode 100644
index a2060eb..0000000
--- a/l10n/tr.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "Klasƶre git",
- "never" : "asla",
- "Nextant is not configured yet" : "Nextant henĆ¼z yapılandırılmamış",
- "Ping querying your Solr Server" : "Solr Sunucunuz Yoklanıyor",
- "Verifying Schema integrity" : "Şema BĆ¼tĆ¼nlĆ¼ÄŸĆ¼ Doğrulanıyor",
- "Test simple text extract query" : "Basit metin ayıklama sorgusu sınanıyor",
- "Test update document query" : "Belge gĆ¼ncelleme sorgusu sınanıyor",
- "Test search query" : "Arama sorgusu sınanıyor",
- "Removing the test document" : "Deneme belgesi siliniyor",
- "All test went fine. Saving your configuration" : "TĆ¼m sınamalar sorunsuz tamamlandı. Yapılandırmanız kaydediliyor",
- "Address-format incorrect" : "Adres biƧimi yanlış",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƨalışıyor ve yoklama (ping) sorgularını yanıtlıyor",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr yoklama (ping) sorgusuna yanıt vermedi (Hata #%1$s)",
- "Schema is fine" : "Şema doğru",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Şema bĆ¼tĆ¼nlĆ¼ÄŸĆ¼ doğrulanamadı ya da dĆ¼zeltilemedi (Hata No%1$s)",
- "Text extracted" : "Metin ayıklandı",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Metin ayıklanamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Alan gĆ¼ncellenemedi. ƖzgĆ¼n belge bulunamadı (Hata No%1$s)",
- "Error during commit (Error #%1$s)" : "İşlem onayı sırasında sorun Ƨıktı (Hata No%1$s)",
- "Error while updating field (Error #%1$s)" : "Alan gĆ¼ncellenirken sorun Ƨıktı (Hata No%1$s)",
- "Document updated" : "Belge gĆ¼ncellendi",
- "Found it" : "Bulundu",
- "Found something, but not what was expected." : "Bir şeyler bulundu, ancak beklediğimiz şey değil.",
- "Cannot find any document" : "Herhangi bir belge bulunamadı",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Arama yapılamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Test-document deleted" : "Deneme belgesi silindi",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Deneme belgesi silinemedi. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Your configuration has been saved" : "Yapılandırmanız kaydedildi",
- "Configuration could not be saved. Please reload this page." : "Yapılandırma kaydedilemedi. LĆ¼tfen bu sayfayı yeniden yĆ¼kleyin.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Tam Metin Arama)",
- "Specify the address of your Solr, and the name of the core to use." : "Solr sunucunuzun adresini ve kullanılacak Ƨekirdeğin adını yazın.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ƈalışan bir Solr sunucu yazılımınız yoksa, wiki Ć¼zerinde nasıl kuracağınız hakkında bazı kurulum rehberleri bulabilirsiniz.",
- "You can also find more information there about this interface." : "Ayrıca orada bu arayĆ¼zden hakkında da ayrıntılı bilgi alabilirsiniz.",
- "Saving" : "Kaydediliyor",
- "Settings" : "Ayarlar",
- "Nextant version:" : "Nextant sĆ¼rĆ¼mĆ¼:",
- "Address of your Solr servlet:" : "Solr sunucu yazılımınızın adresi:",
- "Core:" : "Ƈekirdek:",
- "Timeout (in seconds):" : "Zaman aşımı (saniye):",
- "Test and Save" : "Sına ve Kaydet",
- "Indexing Files" : "Dosyalar Dizine Ekleniyor",
- "Maximum File Size (Mb):" : "En BĆ¼yĆ¼k Dosya Boyutu (Mb):",
- "Edit your filters" : "SĆ¼zgeƧlerinizi dĆ¼zenleyin",
- "Index Files Tree:" : "Dizin Dosyaları Ağacı:",
- "Disable default search from Files" : "Varsayılan arama şu dosyalarda devre dışı bırakılsın",
- "Index File Trash:" : "Dosya Ƈƶp Kutusu Dizine Eklensin:",
- "Index Public Links:" : "Herkese AƧık Bağlantılar Dizine Eklensin:",
- "Index Federated Shares:" : "Birleşmiş Paylaşımlar Dizine Eklensin:",
- "Index External Storages:" : "Dış Depolama Alanları Dizine Eklensin:",
- "Index Encrypted Files:" : "Şifrelenmiş Dosyalar Dizine Eklensin:",
- "Last index:" : "Son dizin:",
- "Indexing Bookmarks" : "Yer Ä°mleri Dizine Ekleniyor",
- "The App Bookmarks is not installed/enabled." : "Yer İmleri uygulaması kurulmamış ya da etkinleştirilmemiş.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Yer İmleri\" uygulaması etkin, yer imleriniz dizine eklenecek.",
- "Checking" : "Denetleniyor",
- "Nextant Status" : "Nextant Durumu",
- "Resource Level:" : "Kaynak DĆ¼zeyi:",
- "Higher performance" : "Daha yĆ¼ksek başarım",
- "High performance" : "YĆ¼ksek başarım",
- "Medium performance" : "Orta başarım",
- "Low performance" : "DĆ¼ÅŸĆ¼k başarım",
- "Lower performance" : "Daha dĆ¼ÅŸĆ¼k başarım",
- "Live Index:" : "Canlı Dizin:",
- "Disabled" : "Devre Dışı",
- "Using Semaphore" : "İşaretler Kullanılarak",
- "Using Database" : "Veritabanı Kullanılarak",
- "Minimum Background Index delay:" : "En KĆ¼Ć§Ć¼k Art Alan Dizin Gecikmesi:",
- "hours" : "saat",
- "Maximum Background Index delay:" : "En BĆ¼yĆ¼k Art Alan Dizin Gecikmesi:",
- "days" : "gĆ¼n",
- "Nextcloud Cron:" : "Nextcloud Zamanlanmış Gƶrevi:",
- "Number of documents:" : "Belge sayısı:",
- "Number of segments:" : "ParƧa sayısı:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Dizini ilk kez oluştururken dosyalarınızı ./occ nextant:index komutunu kullanarak dizine eklemeniz ƶnerilir.",
- "However, you can force it to be started as a background process." : "Bununla birlikte bir art alan işlemi olarak başlatmayı da dayatabilirsiniz.",
- "Force first index as a cronjob" : "Ä°lk dizin oluşturma iƧin zamanlanmış gƶrev dayatılsın",
- "Force index" : "Dizin oluşturma dayatılsın",
- "Indexing is scheduled within the next few hours (Cron)" : "Dizin oluşturma işlemi bir kaƧ saat iƧinde yapılacak (zamanlanmış gƶrev)",
- "Indexing in progress" : "Dizin oluşturma işlemi sĆ¼rĆ¼yor",
- "Type of files to extract" : "Ayıklanacak dosya tĆ¼rleri",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Metin Dosyası (Metin, HTML, Altyazı, Kaynak kodu, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Ofis Belgeleri",
- "Image (JPEG, TIFF)" : "Gƶrsel (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ses Dosyası (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Yoksayılacak uzantılar (.java .xml)"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/l10n/tr.json b/l10n/tr.json
deleted file mode 100644
index 935b138..0000000
--- a/l10n/tr.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "Klasƶre git",
- "never" : "asla",
- "Nextant is not configured yet" : "Nextant henĆ¼z yapılandırılmamış",
- "Ping querying your Solr Server" : "Solr Sunucunuz Yoklanıyor",
- "Verifying Schema integrity" : "Şema BĆ¼tĆ¼nlĆ¼ÄŸĆ¼ Doğrulanıyor",
- "Test simple text extract query" : "Basit metin ayıklama sorgusu sınanıyor",
- "Test update document query" : "Belge gĆ¼ncelleme sorgusu sınanıyor",
- "Test search query" : "Arama sorgusu sınanıyor",
- "Removing the test document" : "Deneme belgesi siliniyor",
- "All test went fine. Saving your configuration" : "TĆ¼m sınamalar sorunsuz tamamlandı. Yapılandırmanız kaydediliyor",
- "Address-format incorrect" : "Adres biƧimi yanlış",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƨalışıyor ve yoklama (ping) sorgularını yanıtlıyor",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr yoklama (ping) sorgusuna yanıt vermedi (Hata #%1$s)",
- "Schema is fine" : "Şema doğru",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "Şema bĆ¼tĆ¼nlĆ¼ÄŸĆ¼ doğrulanamadı ya da dĆ¼zeltilemedi (Hata No%1$s)",
- "Text extracted" : "Metin ayıklandı",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Metin ayıklanamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "Alan gĆ¼ncellenemedi. ƖzgĆ¼n belge bulunamadı (Hata No%1$s)",
- "Error during commit (Error #%1$s)" : "İşlem onayı sırasında sorun Ƨıktı (Hata No%1$s)",
- "Error while updating field (Error #%1$s)" : "Alan gĆ¼ncellenirken sorun Ƨıktı (Hata No%1$s)",
- "Document updated" : "Belge gĆ¼ncellendi",
- "Found it" : "Bulundu",
- "Found something, but not what was expected." : "Bir şeyler bulundu, ancak beklediğimiz şey değil.",
- "Cannot find any document" : "Herhangi bir belge bulunamadı",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Arama yapılamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Test-document deleted" : "Deneme belgesi silindi",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Deneme belgesi silinemedi. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)",
- "Your configuration has been saved" : "Yapılandırmanız kaydedildi",
- "Configuration could not be saved. Please reload this page." : "Yapılandırma kaydedilemedi. LĆ¼tfen bu sayfayı yeniden yĆ¼kleyin.",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (Tam Metin Arama)",
- "Specify the address of your Solr, and the name of the core to use." : "Solr sunucunuzun adresini ve kullanılacak Ƨekirdeğin adını yazın.",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ƈalışan bir Solr sunucu yazılımınız yoksa, wiki Ć¼zerinde nasıl kuracağınız hakkında bazı kurulum rehberleri bulabilirsiniz.",
- "You can also find more information there about this interface." : "Ayrıca orada bu arayĆ¼zden hakkında da ayrıntılı bilgi alabilirsiniz.",
- "Saving" : "Kaydediliyor",
- "Settings" : "Ayarlar",
- "Nextant version:" : "Nextant sĆ¼rĆ¼mĆ¼:",
- "Address of your Solr servlet:" : "Solr sunucu yazılımınızın adresi:",
- "Core:" : "Ƈekirdek:",
- "Timeout (in seconds):" : "Zaman aşımı (saniye):",
- "Test and Save" : "Sına ve Kaydet",
- "Indexing Files" : "Dosyalar Dizine Ekleniyor",
- "Maximum File Size (Mb):" : "En BĆ¼yĆ¼k Dosya Boyutu (Mb):",
- "Edit your filters" : "SĆ¼zgeƧlerinizi dĆ¼zenleyin",
- "Index Files Tree:" : "Dizin Dosyaları Ağacı:",
- "Disable default search from Files" : "Varsayılan arama şu dosyalarda devre dışı bırakılsın",
- "Index File Trash:" : "Dosya Ƈƶp Kutusu Dizine Eklensin:",
- "Index Public Links:" : "Herkese AƧık Bağlantılar Dizine Eklensin:",
- "Index Federated Shares:" : "Birleşmiş Paylaşımlar Dizine Eklensin:",
- "Index External Storages:" : "Dış Depolama Alanları Dizine Eklensin:",
- "Index Encrypted Files:" : "Şifrelenmiş Dosyalar Dizine Eklensin:",
- "Last index:" : "Son dizin:",
- "Indexing Bookmarks" : "Yer Ä°mleri Dizine Ekleniyor",
- "The App Bookmarks is not installed/enabled." : "Yer İmleri uygulaması kurulmamış ya da etkinleştirilmemiş.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Yer İmleri\" uygulaması etkin, yer imleriniz dizine eklenecek.",
- "Checking" : "Denetleniyor",
- "Nextant Status" : "Nextant Durumu",
- "Resource Level:" : "Kaynak DĆ¼zeyi:",
- "Higher performance" : "Daha yĆ¼ksek başarım",
- "High performance" : "YĆ¼ksek başarım",
- "Medium performance" : "Orta başarım",
- "Low performance" : "DĆ¼ÅŸĆ¼k başarım",
- "Lower performance" : "Daha dĆ¼ÅŸĆ¼k başarım",
- "Live Index:" : "Canlı Dizin:",
- "Disabled" : "Devre Dışı",
- "Using Semaphore" : "İşaretler Kullanılarak",
- "Using Database" : "Veritabanı Kullanılarak",
- "Minimum Background Index delay:" : "En KĆ¼Ć§Ć¼k Art Alan Dizin Gecikmesi:",
- "hours" : "saat",
- "Maximum Background Index delay:" : "En BĆ¼yĆ¼k Art Alan Dizin Gecikmesi:",
- "days" : "gĆ¼n",
- "Nextcloud Cron:" : "Nextcloud Zamanlanmış Gƶrevi:",
- "Number of documents:" : "Belge sayısı:",
- "Number of segments:" : "ParƧa sayısı:",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Dizini ilk kez oluştururken dosyalarınızı ./occ nextant:index komutunu kullanarak dizine eklemeniz ƶnerilir.",
- "However, you can force it to be started as a background process." : "Bununla birlikte bir art alan işlemi olarak başlatmayı da dayatabilirsiniz.",
- "Force first index as a cronjob" : "Ä°lk dizin oluşturma iƧin zamanlanmış gƶrev dayatılsın",
- "Force index" : "Dizin oluşturma dayatılsın",
- "Indexing is scheduled within the next few hours (Cron)" : "Dizin oluşturma işlemi bir kaƧ saat iƧinde yapılacak (zamanlanmış gƶrev)",
- "Indexing in progress" : "Dizin oluşturma işlemi sĆ¼rĆ¼yor",
- "Type of files to extract" : "Ayıklanacak dosya tĆ¼rleri",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Metin Dosyası (Metin, HTML, Altyazı, Kaynak kodu, ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Ofis Belgeleri",
- "Image (JPEG, TIFF)" : "Gƶrsel (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "Ses Dosyası (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "Yoksayılacak uzantılar (.java .xml)"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js
deleted file mode 100644
index 108ae82..0000000
--- a/l10n/zh_CN.js
+++ /dev/null
@@ -1,92 +0,0 @@
-OC.L10N.register(
- "nextant",
- {
- "Go to folder" : "前往ē›®å½•",
- "never" : "从äø",
- "Nextant is not configured yet" : "Nextant 尚ęœŖ配ē½®",
- "Ping querying your Solr Server" : "Ping ęŸ„čƢ你ēš„ Solr ęœåŠ”å™Ø",
- "Verifying Schema integrity" : "ę ”éŖŒē‰‡ę®µå®Œę•“ꀧ",
- "Test simple text extract query" : "굋čƕē®€å•ę–‡ęœ¬ęå–ęŸ„čÆ¢",
- "Test update document query" : "굋čÆ•ę›“ę–°ę–‡ę”£ęŸ„čÆ¢",
- "Test search query" : "굋čÆ•ęœē“¢ęŸ„čÆ¢",
- "Removing the test document" : "굋čÆ•ę–‡ę”£ē§»é™¤äø­",
- "All test went fine. Saving your configuration" : "굋čƕå…ØéƒØ通čæ‡ļ¼ę­£åœØäæå­˜ä½ ēš„配ē½®",
- "Address-format incorrect" : "åœ°å€ę ¼å¼äøę­£ē”®",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr åÆåŠØ, čæč”Œå’Œå“åŗ” ping ęŸ„čÆ¢",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ę²”ęœ‰å“åŗ” ping čÆ·ę±‚ (错čÆÆ #%1$s)",
- "Schema is fine" : "ē»“ęž„å®Œå„½",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "ę— ę³•éŖŒčƁ/äæ®å¤ schema ēš„å®Œę•“ꀧ(错čÆÆļ¼š%1$s)",
- "Text extracted" : "ę–‡ä»¶å·²ęå–",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ęå–å¤±č“„ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "ę›“ę–°å­—ę®µå‡ŗ错-ę— ę³•ę‰¾åˆ°ęŗę–‡ę”£-ļ¼ˆé”™čÆÆ#%1$sļ¼‰",
- "Error during commit (Error #%1$s)" : "ꏐäŗ¤é”™čÆÆ (错čÆÆ #%1$s)",
- "Error while updating field (Error #%1$s)" : "ę›“ę–°å­—ę®µę—¶å‡ŗ错(错čÆÆļ¼ƒ%1$s)",
- "Document updated" : "ę–‡ę”£ę›“ę–°",
- "Found it" : "ęŸ„ę‰¾",
- "Found something, but not what was expected." : "ę‰¾åˆ°äŗ†äø€äŗ›äøœč„æļ¼Œä½†äøę˜Æé¢„ęœŸēš„怂",
- "Cannot find any document" : "ę— ę³•ę‰¾åˆ°ä»»ä½•ę–‡ę”£",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ꐜē“¢å¤±č“„怂 čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Test-document deleted" : "굋čÆ•ę–‡ä»¶å·²åˆ é™¤",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ę— ę³•åˆ é™¤ęµ‹čÆ•ę–‡ä»¶ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Your configuration has been saved" : "配ē½®å·²äæå­˜",
- "Configuration could not be saved. Please reload this page." : "配ē½®ę— ę³•äæå­˜ć€‚ čÆ·é‡ę–°åŠ č½½ę­¤é”µé¢ć€‚",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (å…Øꖇꐜē“¢)",
- "Specify the address of your Solr, and the name of the core to use." : "ęŒ‡å®šSolrēš„åœ°å€ä»„åŠč¦ä½æē”Øēš„ę øåæƒēš„名ē§°ć€‚",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "å¦‚ęžœę‚Øę²”ęœ‰čæč”ŒSolr servletļ¼Œåˆ™åÆ仄åœØwikiäøŠę‰¾åˆ°å®‰č£…ęŒ‡å—ć€‚",
- "You can also find more information there about this interface." : "ę‚Øčæ˜åÆ仄åœØę­¤å¤„ę‰¾åˆ°ęœ‰å…³ę­¤ē•Œé¢ēš„ꛓ多äæ”ęÆ怂",
- "Saving" : "äæå­˜äø­",
- "Settings" : "č®¾ē½®",
- "Nextant version:" : "Nextant ē‰ˆęœ¬",
- "Address of your Solr servlet:" : "Solr servletēš„地址ļ¼š",
- "Core:" : "ę øåæƒļ¼š",
- "Timeout (in seconds):" : "超ꗶ (ē§’) :",
- "Test and Save" : "굋čƕ并äæå­˜",
- "Indexing Files" : "ę­£åœØē“¢å¼•ę–‡ä»¶",
- "Maximum File Size (Mb):" : "ęœ€å¤§ę–‡ä»¶å°ŗåÆø (Mb)ļ¼š",
- "Edit your filters" : "ē¼–č¾‘čæ‡ę»¤å™Ø",
- "Index Files Tree:" : "ē“¢å¼•ę–‡ä»¶ē»“ęž„",
- "Disable default search from Files" : "ē¦ē”Øꖇ件äø­ēš„é»˜č®¤ęœē“¢",
- "Index File Trash:" : "å›žę”¶ē«™ę–‡ä»¶åˆ—č”Ø",
- "Index Public Links:" : "ē“¢å¼•å…¬å…±é“¾ęŽ„",
- "Index Federated Shares:" : "ęŒ‡ę•°č”åˆåˆ†äŗ«ļ¼š",
- "Index External Storages:" : "ē“¢å¼•å¤–éƒØ存å‚Ø",
- "Index Encrypted Files:" : "ē“¢å¼•åŠ åÆ†ę–‡ä»¶",
- "Last index:" : "ęœ€åŽē“¢å¼•ļ¼š",
- "Indexing Bookmarks" : "书ē­¾ē“¢å¼•äø­",
- "The App Bookmarks is not installed/enabled." : "åŗ”ē”Ø书ē­¾ę²”꜉ å®‰č£…/åÆē”Ø.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "åÆē”Øā€œåŗ”ē”Ø书ē­¾ā€ļ¼Œę‚Øēš„书ē­¾å°†č¢«ē¼–å…„ē“¢å¼•ć€‚",
- "Checking" : "ę£€ęŸ„äø­",
- "Nextant Status" : "Nextant ēŠ¶ę€",
- "Resource Level:" : "资ęŗē­‰ēŗ§ļ¼š",
- "Higher performance" : "ę›“é«˜ēš„ę€§čƒ½",
- "High performance" : "é«˜ę€§čƒ½",
- "Medium performance" : "äø­ē­‰ę€§čƒ½",
- "Low performance" : "ä½Žę€§čƒ½",
- "Lower performance" : "ę›“ä½Žēš„ę€§čƒ½",
- "Live Index:" : "ēŽ°åœŗē“¢å¼•ļ¼š",
- "Disabled" : "ē¦ē”Ø",
- "Using Semaphore" : "ä½æē”Øäæ”号ēÆ",
- "Using Database" : "ä½æē”Øę•°ę®åŗ“",
- "Minimum Background Index delay:" : "ęœ€å°čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š",
- "hours" : "å°ę—¶",
- "Maximum Background Index delay:" : "ęœ€å¤§čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š",
- "days" : "ę—„",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "ꖇ件ꕰ",
- "Number of segments:" : "ꮵꕰļ¼š",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "å»ŗč®®ä½æē”Ø./occ nextantļ¼šindex命令åÆ¹ę–‡ä»¶čæ›č”Œē¬¬äø€ę¬”ē“¢å¼•ć€‚",
- "However, you can force it to be started as a background process." : "但ę˜Æļ¼Œę‚ØåÆ仄å¼ŗ制它作äøŗ后台čæ›ē؋åÆåŠØ怂",
- "Force first index as a cronjob" : "å¼ŗ制ē¬¬äø€äøŖē“¢å¼•ä½œäøŗäø€äøŖcronjob",
- "Force index" : "å¼ŗ制ē“¢å¼•",
- "Indexing is scheduled within the next few hours (Cron)" : "ē“¢å¼•č®”划åœØęœŖę„å‡ äøŖå°ę—¶å†…ļ¼ˆCronļ¼‰",
- "Indexing in progress" : "ę­£åœØå»ŗē«‹ē“¢å¼•",
- "Type of files to extract" : "č¦č§£åŽ‹ēš„ꖇ件ē±»åž‹",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "ę–‡ęœ¬ę–‡ä»¶ (ę–‡ęœ¬ļ¼ŒHTMLļ¼Œå­—幕ļ¼Œęŗä»£ē ļ¼Œ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Officeę–‡ę”£",
- "Image (JPEG, TIFF)" : "图ē‰‡ (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "éŸ³é¢‘ę–‡ä»¶ (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "ę‚ØåøŒęœ›åæ½ē•„ēš„ē؋åŗę‹“展名 (.java .xml)"
-},
-"nplurals=1; plural=0;");
diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json
deleted file mode 100644
index 083e60e..0000000
--- a/l10n/zh_CN.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{ "translations": {
- "Go to folder" : "前往ē›®å½•",
- "never" : "从äø",
- "Nextant is not configured yet" : "Nextant 尚ęœŖ配ē½®",
- "Ping querying your Solr Server" : "Ping ęŸ„čƢ你ēš„ Solr ęœåŠ”å™Ø",
- "Verifying Schema integrity" : "ę ”éŖŒē‰‡ę®µå®Œę•“ꀧ",
- "Test simple text extract query" : "굋čƕē®€å•ę–‡ęœ¬ęå–ęŸ„čÆ¢",
- "Test update document query" : "굋čÆ•ę›“ę–°ę–‡ę”£ęŸ„čÆ¢",
- "Test search query" : "굋čÆ•ęœē“¢ęŸ„čÆ¢",
- "Removing the test document" : "굋čÆ•ę–‡ę”£ē§»é™¤äø­",
- "All test went fine. Saving your configuration" : "굋čƕå…ØéƒØ通čæ‡ļ¼ę­£åœØäæå­˜ä½ ēš„配ē½®",
- "Address-format incorrect" : "åœ°å€ę ¼å¼äøę­£ē”®",
- "Apache Solr is up, running and responding to ping query" : "Apache Solr åÆåŠØ, čæč”Œå’Œå“åŗ” ping ęŸ„čÆ¢",
- "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ę²”ęœ‰å“åŗ” ping čÆ·ę±‚ (错čÆÆ #%1$s)",
- "Schema is fine" : "ē»“ęž„å®Œå„½",
- "Unable to verify/fix schema integrity (Error #%1$s)" : "ę— ę³•éŖŒčƁ/äæ®å¤ schema ēš„å®Œę•“ꀧ(错čÆÆļ¼š%1$s)",
- "Text extracted" : "ę–‡ä»¶å·²ęå–",
- "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ęå–å¤±č“„ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Error updating field - Can't find original document - (Error #%1$s)" : "ę›“ę–°å­—ę®µå‡ŗ错-ę— ę³•ę‰¾åˆ°ęŗę–‡ę”£-ļ¼ˆé”™čÆÆ#%1$sļ¼‰",
- "Error during commit (Error #%1$s)" : "ꏐäŗ¤é”™čÆÆ (错čÆÆ #%1$s)",
- "Error while updating field (Error #%1$s)" : "ę›“ę–°å­—ę®µę—¶å‡ŗ错(错čÆÆļ¼ƒ%1$s)",
- "Document updated" : "ę–‡ę”£ę›“ę–°",
- "Found it" : "ęŸ„ę‰¾",
- "Found something, but not what was expected." : "ę‰¾åˆ°äŗ†äø€äŗ›äøœč„æļ¼Œä½†äøę˜Æé¢„ęœŸēš„怂",
- "Cannot find any document" : "ę— ę³•ę‰¾åˆ°ä»»ä½•ę–‡ę”£",
- "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ꐜē“¢å¤±č“„怂 čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Test-document deleted" : "굋čÆ•ę–‡ä»¶å·²åˆ é™¤",
- "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ę— ę³•åˆ é™¤ęµ‹čÆ•ę–‡ä»¶ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)",
- "Your configuration has been saved" : "配ē½®å·²äæå­˜",
- "Configuration could not be saved. Please reload this page." : "配ē½®ę— ę³•äæå­˜ć€‚ čÆ·é‡ę–°åŠ č½½ę­¤é”µé¢ć€‚",
- "Nextant" : "Nextant",
- "Nextant (Full-Text Search)" : "Nextant (å…Øꖇꐜē“¢)",
- "Specify the address of your Solr, and the name of the core to use." : "ęŒ‡å®šSolrēš„åœ°å€ä»„åŠč¦ä½æē”Øēš„ę øåæƒēš„名ē§°ć€‚",
- "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "å¦‚ęžœę‚Øę²”ęœ‰čæč”ŒSolr servletļ¼Œåˆ™åÆ仄åœØwikiäøŠę‰¾åˆ°å®‰č£…ęŒ‡å—ć€‚",
- "You can also find more information there about this interface." : "ę‚Øčæ˜åÆ仄åœØę­¤å¤„ę‰¾åˆ°ęœ‰å…³ę­¤ē•Œé¢ēš„ꛓ多äæ”ęÆ怂",
- "Saving" : "äæå­˜äø­",
- "Settings" : "č®¾ē½®",
- "Nextant version:" : "Nextant ē‰ˆęœ¬",
- "Address of your Solr servlet:" : "Solr servletēš„地址ļ¼š",
- "Core:" : "ę øåæƒļ¼š",
- "Timeout (in seconds):" : "超ꗶ (ē§’) :",
- "Test and Save" : "굋čƕ并äæå­˜",
- "Indexing Files" : "ę­£åœØē“¢å¼•ę–‡ä»¶",
- "Maximum File Size (Mb):" : "ęœ€å¤§ę–‡ä»¶å°ŗåÆø (Mb)ļ¼š",
- "Edit your filters" : "ē¼–č¾‘čæ‡ę»¤å™Ø",
- "Index Files Tree:" : "ē“¢å¼•ę–‡ä»¶ē»“ęž„",
- "Disable default search from Files" : "ē¦ē”Øꖇ件äø­ēš„é»˜č®¤ęœē“¢",
- "Index File Trash:" : "å›žę”¶ē«™ę–‡ä»¶åˆ—č”Ø",
- "Index Public Links:" : "ē“¢å¼•å…¬å…±é“¾ęŽ„",
- "Index Federated Shares:" : "ęŒ‡ę•°č”åˆåˆ†äŗ«ļ¼š",
- "Index External Storages:" : "ē“¢å¼•å¤–éƒØ存å‚Ø",
- "Index Encrypted Files:" : "ē“¢å¼•åŠ åÆ†ę–‡ä»¶",
- "Last index:" : "ęœ€åŽē“¢å¼•ļ¼š",
- "Indexing Bookmarks" : "书ē­¾ē“¢å¼•äø­",
- "The App Bookmarks is not installed/enabled." : "åŗ”ē”Ø书ē­¾ę²”꜉ å®‰č£…/åÆē”Ø.",
- "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "åÆē”Øā€œåŗ”ē”Ø书ē­¾ā€ļ¼Œę‚Øēš„书ē­¾å°†č¢«ē¼–å…„ē“¢å¼•ć€‚",
- "Checking" : "ę£€ęŸ„äø­",
- "Nextant Status" : "Nextant ēŠ¶ę€",
- "Resource Level:" : "资ęŗē­‰ēŗ§ļ¼š",
- "Higher performance" : "ę›“é«˜ēš„ę€§čƒ½",
- "High performance" : "é«˜ę€§čƒ½",
- "Medium performance" : "äø­ē­‰ę€§čƒ½",
- "Low performance" : "ä½Žę€§čƒ½",
- "Lower performance" : "ę›“ä½Žēš„ę€§čƒ½",
- "Live Index:" : "ēŽ°åœŗē“¢å¼•ļ¼š",
- "Disabled" : "ē¦ē”Ø",
- "Using Semaphore" : "ä½æē”Øäæ”号ēÆ",
- "Using Database" : "ä½æē”Øę•°ę®åŗ“",
- "Minimum Background Index delay:" : "ęœ€å°čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š",
- "hours" : "å°ę—¶",
- "Maximum Background Index delay:" : "ęœ€å¤§čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š",
- "days" : "ę—„",
- "Nextcloud Cron:" : "Nextcloud Cron:",
- "Number of documents:" : "ꖇ件ꕰ",
- "Number of segments:" : "ꮵꕰļ¼š",
- "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "å»ŗč®®ä½æē”Ø./occ nextantļ¼šindex命令åÆ¹ę–‡ä»¶čæ›č”Œē¬¬äø€ę¬”ē“¢å¼•ć€‚",
- "However, you can force it to be started as a background process." : "但ę˜Æļ¼Œę‚ØåÆ仄å¼ŗ制它作äøŗ后台čæ›ē؋åÆåŠØ怂",
- "Force first index as a cronjob" : "å¼ŗ制ē¬¬äø€äøŖē“¢å¼•ä½œäøŗäø€äøŖcronjob",
- "Force index" : "å¼ŗ制ē“¢å¼•",
- "Indexing is scheduled within the next few hours (Cron)" : "ē“¢å¼•č®”划åœØęœŖę„å‡ äøŖå°ę—¶å†…ļ¼ˆCronļ¼‰",
- "Indexing in progress" : "ę­£åœØå»ŗē«‹ē“¢å¼•",
- "Type of files to extract" : "č¦č§£åŽ‹ēš„ꖇ件ē±»åž‹",
- "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "ę–‡ęœ¬ę–‡ä»¶ (ę–‡ęœ¬ļ¼ŒHTMLļ¼Œå­—幕ļ¼Œęŗä»£ē ļ¼Œ...)",
- "EPUB / PDF / RTF" : "EPUB / PDF / RTF",
- "Office Documents" : "Officeę–‡ę”£",
- "Image (JPEG, TIFF)" : "图ē‰‡ (JPEG, TIFF)",
- "Audio File (MP3, FLAC)" : "éŸ³é¢‘ę–‡ä»¶ (MP3, FLAC)",
- "Extensions you wish to ignore (.java .xml)" : "ę‚ØåøŒęœ›åæ½ē•„ēš„ē؋åŗę‹“展名 (.java .xml)"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
deleted file mode 100644
index c06bb15..0000000
--- a/lib/AppInfo/Application.php
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\AppInfo;
-
-use \OCA\Nextant\Controller\SettingsController;
-use \OCA\Nextant\Controller\SearchController;
-use \OCA\Nextant\Db\LiveQueueMapper;
-use \OCA\Nextant\Events\FilesEvents;
-use \OCA\Nextant\Events\BookmarksEvents;
-use \OCA\Nextant\Hooks\FilesHooks;
-use \OCA\Nextant\Hooks\BookmarksHooks;
-use \OCA\Nextant\Provider\SearchProvider;
-use \OCA\Nextant\Service\ConfigService;
-use \OCA\Nextant\Service\QueueService;
-use \OCA\Nextant\Service\MiscService;
-use \OCA\Nextant\Service\SourceService;
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\IndexService;
-use \OCA\Nextant\Service\BackgroundService;
-use \OCA\Nextant\Service\BookmarkService;
-use \OCA\Nextant\Service\NewsService;
-use \OCA\Nextant\Service\SolrAdminService;
-use \OCA\Nextant\Service\SolrToolsService;
-use \OCA\Nextant\Migration\NextantUpgrade;
-use OCP\AppFramework\App;
-use OCP\Util;
-use Solarium\Solarium;
-
-class Application extends App
-{
-
- private $registeredDatabase = false;
-
- /**
- *
- * @param array $params
- */
- public function __construct(array $params = array())
- {
- parent::__construct('nextant', $params);
- $container = $this->getContainer();
-
- /**
- * Controllers
- */
- $container->registerService('MiscService', function ($c) {
- return new MiscService($c->query('Logger'), $c->query('AppName'));
- });
-
- $container->registerService('ConfigService', function ($c) {
- return new ConfigService($c->query('AppName'), $c->query('CoreConfig'), $c->query('MiscService'));
- });
-
- $container->registerService('IndexService', function ($c) {
- return new IndexService($c->query('GroupManager'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('MiscService'));
- });
-
- $container->registerService('BackgroundService', function ($c) {
- return new BackgroundService($c->query('UserManager'), $c->query('RootFolder'), $c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('SourceService'), $c->query('IndexService'), $c->query('QueueService'), $c->query('MiscService'));
- });
-
- $container->registerService('QueueService', function ($c) {
- return new QueueService($c->query('LiveQueueMapper'), $c->query('ConfigService'), $c->query('IndexService'), $c->query('SourceService'), $c->query('MiscService'));
- });
-
- $container->registerService('SourceService', function ($c) {
- return new SourceService($c->query('FileService'), $c->query('BookmarkService'), $c->query('NewsService'), $c->query('MiscService'));
- });
-
- $container->registerService('FileService', function ($c) {
- return new FileService($c->query('ConfigService'), $c->query('RootFolder'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('MiscService'));
- });
-
- $container->registerService('BookmarkService', function ($c) {
- return new BookmarkService($c->query('ConfigService'), $c->query('MiscService'));
- });
-
- $container->registerService('NewsService', function ($c) {
- return new NewsService($c->query('ConfigService'), $c->query('MiscService'));
- });
-
- $container->registerService('SolrService', function ($c) {
- return new SolrService($c->query('SolariumClient'), $c->query('ConfigService'), $c->query('MiscService'));
- });
-
- $container->registerService('SolrAdminService', function ($c) {
- return new SolrAdminService($c->query('SolrService'), $c->query('ConfigService'), $c->query('MiscService'));
- });
-
- $container->registerService('SolrToolsService', function ($c) {
- return new SolrToolsService($c->query('SolrService'), $c->query('ConfigService'), $c->query('MiscService'));
- });
-
- $container->registerService('LiveQueueMapper', function ($c) {
- return new LiveQueueMapper($c->query('ServerContainer')
- ->getDatabaseConnection());
- });
-
- $container->registerService('FilesEvents', function ($c) {
- return new FilesEvents($c->query('UserId'), $c->query('ConfigService'), $c->query('QueueService'), $c->query('MiscService'));
- });
-
- $container->registerService('BookmarksEvents', function ($c) {
- return new BookmarksEvents($c->query('ConfigService'), $c->query('UserId'), $c->query('SolrService'), $c->query('MiscService'));
- });
-
- $container->registerService('SearchController', function ($c) {
- return new SearchController($c->query('AppName'), $c->query('Request'), $c->query('UserId'), $c->query('GroupManager'), $c->query('ConfigService'), $c->query('SolrService'), $c->query('SourceService'), $c->query('MiscService'));
- });
-
- $container->registerService('SettingsController', function ($c) {
- return new SettingsController($c->query('AppName'), $c->query('Request'), $c->query('ConfigService'), $c->query('IndexService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('ServerContainer')
- ->getL10N('nextant'), $c->query('MiscService'));
- });
-
- /**
- * Providers
- */
- // Registering the SearchProvider as a Service seems useless.
- // $container->registerService('SearchProvider', function ($c) {
- // return new SearchProvider($c->query('MiscService'));
- // });
-
- /**
- * Core
- */
- $container->registerService('Logger', function ($c) {
- return $c->query('ServerContainer')
- ->getLogger();
- });
- $container->registerService('CoreConfig', function ($c) {
- return $c->query('ServerContainer')
- ->getConfig();
- });
- $container->registerService('UserId', function ($c) {
- $user = $c->query('ServerContainer')
- ->getUserSession()
- ->getUser();
- return is_null($user) ? '' : $user->getUID();
- });
-
- $container->registerService('UserManager', function ($c) {
- return \OC::$server->getUserManager();
- });
-
- $container->registerService('GroupManager', function ($c) {
- return \OC::$server->getGroupManager();
- });
-
- $container->registerService('UserFolder', function ($c) {
- return \OC::$server->getUserFolder();
- });
-
- $container->registerService('RootFolder', function ($c) {
- return $c->getServer()
- ->getRootFolder();
- });
-
- // Translates
- $container->registerService('L10N', function (IContainer $c) {
- return $c->query('ServerContainer')
- ->getL10N($c->query('AppName'));
- });
-
- $container->registerService('SolariumClient', function ($c) {
- $toS = $c->query('ConfigService')
- ->toSolarium();
- if (! $toS)
- return false;
- return new \Solarium\Client($toS);
- });
-
- /**
- * Migration scripts
- */
- $container->registerService('OCA\Nextant\Migration\NextantUpgrade', function ($c) {
- return new NextantUpgrade($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrAdminService'));
- });
- }
-
- public function registerFilesHooks()
- {
- Util::connectHook('OC_Filesystem', 'post_create', '\OCA\Nextant\Hooks\FilesHooks', 'fileCreated');
- Util::connectHook('OC_Filesystem', 'post_update', '\OCA\Nextant\Hooks\FilesHooks', 'fileUpdated');
- Util::connectHook('OC_Filesystem', 'post_rename', '\OCA\Nextant\Hooks\FilesHooks', 'fileRenamed');
- Util::connectHook('OC_Filesystem', 'delete', '\OCA\Nextant\Hooks\FilesHooks', 'fileTrashed');
- Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', '\OCA\Nextant\Hooks\FilesHooks', 'fileRestored');
- Util::connectHook('\OCP\Trashbin', 'preDelete', '\OCA\Nextant\Hooks\FilesHooks', 'fileDeleted');
- Util::connectHook('OCP\Share', 'post_shared', '\OCA\Nextant\Hooks\FilesHooks', 'fileShared');
- Util::connectHook('OCP\Share', 'post_unshare', '\OCA\Nextant\Hooks\FilesHooks', 'fileUnshared');
-
- // Util::connectHook('\OCA\Bookmarks', 'post_add', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkAdd');
- // Util::connectHook('\OCA\Bookmarks', 'post_edit', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkEdit');
- // Util::connectHook('\OCA\Bookmarks', 'post_delete', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkDelete');
- }
-
- public function registerSearchProvider()
- {
- $config = $this->getContainer()->query('ConfigService');
- if ($config->getAppValue('configured') !== '1')
- return;
-
- \OC::$server->getEventDispatcher()->addListener('OCA\Files::loadAdditionalScripts', function () {
- \OCP\Util::addScript('nextant', 'navigate');
- \OCP\Util::addStyle('nextant', 'navigate');
- });
-
- if ($config->getAppValue('index_files_sharelink') === '1')
- \OC::$server->getEventDispatcher()->addListener('OCA\Files_Sharing::loadAdditionalScripts', function () {
- \OCP\Util::addScript('nextant', 'navigate');
- \OCP\Util::addStyle('nextant', 'navigate');
- });
- }
-
- public function registerSettingsAdmin()
- {
- \OCP\App::registerAdmin($this->getContainer()->query('AppName'), 'lib/admin');
- }
-
- // public function registerNavigation()
- // {
- // $appName = $this->getContainer()->getAppName();
- // $server = $this->getContainer()->getServer();
-
- // $this->getContainer()
- // ->query('MiscService')
- // ->log('registerNavigation()', 2);
- // $server->getNavigationManager()->add(array(
- // 'id' => $appName,
- // 'order' => 5,
- // 'href' => $server->getURLGenerator()
- // ->linkToRoute('nextant.page.index'),
- // 'icon' => $server->getURLGenerator()
- // ->imagePath($appName, 'app.svg'),
- // 'name' => $server->getL10N($appName)
- // ->t('Nextant')
- // ));
- // }
-}
-
diff --git a/lib/Command/Background.php b/lib/Command/Background.php
deleted file mode 100644
index 6d9c0d3..0000000
--- a/lib/Command/Background.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-
-class Background extends Base
-{
-
- public function __construct($backgroundService)
- {
- parent::__construct();
- $this->backgroundService = $backgroundService;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:background')->setDescription('run the background index');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $this->backgroundService->run();
- }
-}
-
-
-
diff --git a/lib/Command/Check.php b/lib/Command/Check.php
deleted file mode 100644
index d27a586..0000000
--- a/lib/Command/Check.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class Check extends Base
-{
-
- private $configService;
-
- private $solrService;
-
- private $solrTools;
-
- private $solrAdmin;
-
- private $settingsController;
-
- public function __construct($configService, $solrService, $solrTools, $solrAdmin, $settingsController)
- {
- parent::__construct();
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->solrAdmin = $solrAdmin;
- $this->settingsController = $settingsController;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:check')
- ->setDescription('check, fix and optimise your current Solr configuration')
- ->addOption('disable', null, InputOption::VALUE_NONE, 'disable Nextant')
- ->addOption('info', null, InputOption::VALUE_NONE, 'display some info')
- ->addOption('infoall', null, InputOption::VALUE_NONE, 'display some info (also sensitive)')
- ->addOption('fix', 'f', InputOption::VALUE_NONE, 'fix');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- if (! $this->solrService->configured(true)) {
- $output->writeln('Nextant is not yet configured');
- return;
- }
-
- if ($input->getOption('disable')) {
- $this->configService->setAppValue('configured', '2');
- return;
- }
-
- if ($input->getOption('info') || $input->getOption('infoall')) {
- $info = $this->settingsController->updateSubOptions(true, 'check');
- $info['cloud_version'] = $this->configService->getCloudVersion(true);
-
- if (! $input->getOption('infoall')) {
- $info['solr_url'] = '**HIDDEN**';
- $info['solr_core'] = '**HIDDEN**';
-
- // $qk = $info['index_live_queuekey'];
- // $info['index_live_queuekey'] = substr($qk, 0, - 3) . '???';
- }
-
- $output->writeln(var_export($info, true));
- }
-
- $this->solrService->setOutput($output);
-
- $client = $this->solrService->getClientConfig()['endpoint']['localhost'];
- $output->write('Pinging ' . $client['host'] . ':' . $client['port'] . $client['path'] . $client['core'] . ' : ');
- if ($this->solrAdmin->ping())
- $output->writeln('<info>ok</info>');
- else {
- $output->writeln('<error>fail</error>');
- return false;
- }
-
- if (! $this->solrAdmin->checkSchema(($input->getOption('fix')), $ierror)) {
- if ($ierror->getCode() > 0) {
- $output->writeln('*** Error #' . $ierror->getCode() . ' (' . $ierror->getMessage() . ')');
- return;
- }
- }
-
- $output->writeln('');
- $output->writeln('Your solr contains ' . $this->solrTools->count() . ' documents :');
- $output->writeln(' - ' . $this->solrTools->count('files') . ' files');
- $output->writeln(' - ' . $this->solrTools->count('bookmarks') . ' bookmarks');
-
- $output->writeln(' - ' . $this->solrTools->getInfoCore()->index->segmentCount . ' segments');
- }
-}
-
-
-
diff --git a/lib/Command/Clear.php b/lib/Command/Clear.php
deleted file mode 100644
index 3bf114f..0000000
--- a/lib/Command/Clear.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-
-class Clear extends Base
-{
-
- private $configService;
-
- private $solrService;
-
- private $solrAdmin;
-
- public function __construct($configService, $solrService, $solrAdmin)
- {
- parent::__construct();
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrAdmin = $solrAdmin;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:clear')->setDescription('destroy all Solr documents');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- if (! $this->solrService->configured(true)) {
- $output->writeln('Nextant is not yet configured');
- return;
- }
-
- if (! ($this->solrAdmin->ping())) {
- $output->writeln('*** Solr seems down.');
- return false;
- }
-
- $helper = $this->getHelper('question');
- $question = new ConfirmationQuestion('<question>This will remove all indexes on your Solr. Continue with this action? (y/N) </question> ', false);
-
- if (! $helper->ask($input, $output, $question)) {
- return;
- }
-
- if ($this->solrAdmin->clear()) {
- $output->writeln('Your Solr core is now empty');
- $this->configService->stopIndex();
- }
- }
-}
-
-
-
diff --git a/lib/Command/Index.php b/lib/Command/Index.php
deleted file mode 100644
index 797018b..0000000
--- a/lib/Command/Index.php
+++ /dev/null
@@ -1,454 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Items\ItemDocument;
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Helper\ProgressBar;
-use OCP\IUserManager;
-use OC\Files\Filesystem;
-
-class Index extends Base
-{
-
- const REFRESH_INFO_SYSTEM = 3;
-
- private $userManager;
-
- private $rootFolder;
-
- private $indexService;
-
- private $queueService;
-
- private $solrService;
-
- private $solrTools;
-
- private $solrAdmin;
-
- private $configService;
-
- private $sourceService;
-
- private $miscService;
-
- private $currentIndexStatus = array();
-
- public function __construct(IUserManager $userManager, $rootFolder, $indexService, $queueService, $solrService, $solrTools, $solrAdmin, $configService, $sourceService, $miscService)
- {
- parent::__construct();
- $this->userManager = $userManager;
- $this->rootFolder = $rootFolder;
- $this->indexService = $indexService;
- $this->queueService = $queueService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->solrAdmin = $solrAdmin;
- $this->configService = $configService;
- $this->sourceService = $sourceService;
- $this->miscService = $miscService;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:index')
- ->setDescription('scan users\' files, generate and index Solr documents')
- ->addOption('debug', null, InputOption::VALUE_NONE, 'display more text')
- ->addOption('debugall', null, InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'display a lot more text')
- ->addOption('unlock', 'k', InputOption::VALUE_NONE, 'unlock on Solr')
- ->addOption('force', 'f', InputOption::VALUE_NONE, 'force extract and update of all your documents')
- ->addOption('user', 'u', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'indexes file of the given user(s)')
- ->addOption('background', 'c', InputOption::VALUE_NONE, 'force index as a background process (cron)')
- ->addOption('bookmarks', 'b', InputOption::VALUE_NONE, 'only indexes bookmarks - requiert <comment>Bookmarks</comment> installed')
- ->addOption('files', 'i', InputOption::VALUE_NONE, 'only indexes files')
- ->addOption('files_extract', 'x', InputOption::VALUE_NONE, 'only extract files')
- ->addOption('files_update', 'r', InputOption::VALUE_NONE, 'only update files share rights');
- }
-
- public function interrupted()
- {
- if ($this->hasBeenInterrupted()) {
- $this->end(false);
- throw new \Exception('ctrl-c');
- }
- }
-
- public function end($exit = true)
- {
- $this->configService->lockIndex(false);
- if (key_exists('files', $this->currentIndexStatus))
- $this->configService->needIndexFiles($this->currentIndexStatus['files']);
- if (key_exists('bookmarks', $this->currentIndexStatus))
- $this->configService->needIndexBookmarks($this->currentIndexStatus['bookmarks']);
-
- if ($exit)
- exit();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $output->writeln('<comment>nextant v' . $this->configService->getAppValue('installed_version') . '</comment>');
- // $output->writeln('<comment>discussion forum:</comment> https://help.nextcloud.com/c/apps/nextant');
- // $output->writeln('');
-
- if (! $this->solrService->configured(true)) {
- $output->writeln('Nextant is not yet configured');
- return;
- }
-
- $debug = 0;
- if ($input->getOption('debug'))
- $debug = 1;
- if ($input->getOption('debugall'))
- $debug = $input->getOption('debugall');
-
- $this->miscService->setDebug($debug);
- $this->sourceService->file()->setDebug($debug);
- $this->indexService->setDebug($debug);
- $this->indexService->setForcing($input->getOption('force'));
-
- $this->solrService->setOutput($output);
- $this->indexService->setOutput($output);
- $this->indexService->setParent($this);
-
- if ($input->getOption('background')) {
- if ($input->getOption('unlock')) {
- $this->configService->setAppValue('configured', '1');
- $this->configService->lockIndex(false);
- }
- $this->configService->needIndexFiles(true);
- $this->configService->needIndexBookmarks(true);
- $this->configService->setAppValue('index_files_last', '0');
- $this->configService->setAppValue('index_bookmarks_last', '0');
-
- $output->writeln('A background indexing process is scheduled');
- return;
- }
-
- if ($input->getOption('unlock')) {
- $this->configService->lockIndex(false);
- $output->writeln('Nextant is not locked anymore.');
- return;
- }
-
- $delay = 0;
- if ($this->configService->isLockedIndex($delay)) {
- $output->writeln('');
- $output->writeln('nextant is currently locked by another indexing script (command line or background job)');
- $output->writeln('last tick from this script was ' . $delay . ' second(s) ago');
- $output->writeln('');
- $output->writeln('If you think the other script exited improperly, you can use <info>./occ nextant:index --unlock</info> to unlock');
- $output->writeln('');
-
- return;
- }
-
- if (! ($this->solrAdmin->ping())) {
- $output->writeln('*** Solr seems down.');
- return false;
- }
-
- $this->indexService->init();
- $this->indexService->lockActive(true);
- $this->configService->lockIndex(true);
-
- $filtered = false;
- if ($input->getOption('bookmarks') || $input->getOption('files') || $input->getOption('files_extract') || $input->getOption('files_update'))
- $filtered = true;
- else
- $this->queueService->emptyQueue();
-
- // neededIndex
- $this->currentIndexStatus = array(
- 'files' => $this->configService->neededIndexFiles(),
- 'bookmarks' => $this->configService->neededIndexBookmarks()
- );
-
- if (! $filtered || $input->getOption('files'))
- $this->configService->needIndexFiles(false);
- if (! $filtered || $input->getOption('bookmarks'))
- $this->configService->needIndexBookmarks(false);
-
- // indexes
- if (! $filtered || $input->getOption('files') || $input->getOption('files_extract')) {
- $this->indexesFiles($input, $output);
- $this->configService->timeIndex('files');
- }
-
- if (! $filtered || $input->getOption('files') || $input->getOption('files_update')) {
- $this->updateFiles($input, $output);
- $this->configService->timeIndex('files');
- }
-
- if (! $filtered || $input->getOption('bookmarks')) {
- $this->indexesBookmarks($input, $output);
- $this->configService->timeIndex('bookmarks');
- }
-
- $this->configService->lockIndex(false);
- $this->configService->setAppValue('configured', '1');
-
- $output->writeln('');
- $output->writeln('Time spent: ' . $this->indexService->getIndexDuration());
- $output->writeln('Your index now contains ' . $this->solrTools->getInfoCore()->index->segmentCount . ' segments');
- }
-
- /**
- * index Files
- *
- * @param OutputInterface $output
- */
- private function indexesFiles($input, $output)
- {
- if (! $this->sourceService->file()->configured()) {
- if ($input->getOption('files') || $input->getOption('files_extract'))
- $output->writeln('Error while indexing Files: Nextant is not configured to extract your files.');
- return;
- }
-
- $output->writeln('');
- $output->writeln('* Extracting files:');
- $output->writeln('');
- $output->writeln('');
- if ($input->getOption('debug'))
- $output->writeln('');
-
- $users = $this->getUsers($input->getOption('user'));
-
- $indexed = 0;
- $extracted = 0;
- $processed = 0;
- $removed = 0;
- $failed = 0;
- foreach ($users as $user) {
-
- $this->interrupted();
-
- if (! $this->userManager->userExists($user))
- continue;
-
- $this->sourceService->file()->initUser($user, true);
- $files = $this->sourceService->file()->getFilesPerUserId('/files', array());
-
- if ($this->configService->getAppValue('index_files_trash') === '1') {
- $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array(
- 'deleted'
- ));
- $files = array_merge($files, $files_trashbin);
- }
-
- $solrDocs = null;
- $this->indexService->extract(ItemDocument::TYPE_FILE, $user, $files, $solrDocs);
- $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $user, $files, $solrDocs);
-
- $this->sourceService->file()->endUser();
-
- foreach ($files as $doc) {
- if ($doc->isIndexed())
- $indexed ++;
- if ($doc->isExtracted())
- $extracted ++;
- if ($doc->isProcessed())
- $processed ++;
- if ($doc->isFailedExtract() || $doc->isFailedIndex())
- $failed ++;
- }
-
- if (is_array($solrDocs)) {
- foreach ($solrDocs as $doc) {
- if ($doc->isRemoved())
- $removed ++;
- }
- }
-
- $output->writeln('');
- }
-
- $output->writeln(' ' . $processed . ' file(s) processed ; ' . $removed . ' orphan(s) removed');
- $output->writeln(' ' . $indexed . ' documents indexed ; ' . $extracted . ' fully extracted');
-
- if ($failed > 0)
- $output->writeln(' ' . $failed . ' file(s) were not processed (failure)');
- }
-
- /**
- * index Files
- *
- * @param OutputInterface $output
- */
- private function updateFiles($input, $output)
- {
- if (! $this->sourceService->file()->configured()) {
- if ($input->getOption('files') || $input->getOption('files_update'))
- $output->writeln('Error while indexing Files: Nextant is not configured to update your files.');
- return;
- }
-
- $output->writeln('');
- $output->writeln('* Updating files:');
- $output->writeln('');
- $output->writeln('');
- if ($input->getOption('debug'))
- $output->writeln('');
-
- $users = $this->getUsers($input->getOption('user'));
-
- $updated = 0;
- $failed = 0;
- foreach ($users as $user) {
-
- $this->interrupted();
-
- if (! $this->userManager->userExists($user))
- continue;
-
- $this->sourceService->file()->initUser($user, true);
- $files = $this->sourceService->file()->getFilesPerUserId('/files', array());
-
- if ($this->configService->getAppValue('index_files_trash') === '1') {
- $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array(
- 'deleted'
- ));
- $files = array_merge($files, $files_trashbin);
- }
-
- $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $user, $files);
-
- $this->sourceService->file()->endUser();
-
- $output->writeln('');
- foreach ($files as $doc) {
- if ($doc->isUpdated())
- $updated ++;
- if ($doc->isFailedUpdate())
- $failed ++;
- }
- }
-
- $output->writeln(' ' . $updated . ' document(s) updated ; ' . $failed . ' failure(s)');
-
- return;
- }
-
- /**
- * index Bookmarks
- *
- * @param OutputInterface $output
- */
- private function indexesBookmarks($input, OutputInterface $output)
- {
- if (! $this->sourceService->bookmark()->configured()) {
- if ($input->getOption('bookmarks'))
- $output->writeln('Error while indexing Bookmarks: Nextant is not configured to extract your bookmarks.');
- return;
- }
-
- $output->writeln('');
- $output->writeln('* Indexing bookmarks:');
- $output->writeln('');
- $output->writeln('');
- if ($input->getOption('debug'))
- $output->writeln('');
-
- $users = $this->getUsers($input->getOption('user'));
-
- $indexed = 0;
- $extracted = 0;
- $processed = 0;
- $removed = 0;
- $failed = 0;
- foreach ($users as $user) {
- $this->interrupted();
-
- if (! $this->userManager->userExists($user))
- continue;
-
- $bm = $this->sourceService->bookmark()->getBookmarksPerUserId($user);
-
- $solrDocs = null;
- $this->indexService->extract(ItemDocument::TYPE_BOOKMARK, $user, $bm, $solrDocs);
- $this->indexService->removeOrphans(ItemDocument::TYPE_BOOKMARK, $user, $bm, $solrDocs);
-
- foreach ($bm as $doc) {
- if ($doc->isIndexed())
- $indexed ++;
- if ($doc->isExtracted())
- $extracted ++;
- if ($doc->isProcessed())
- $processed ++;
- if ($doc->isFailedExtract() || $doc->isFailedIndex())
- $failed ++;
- }
-
- if (is_array($solrDocs)) {
- foreach ($solrDocs as $doc) {
- if ($doc->isRemoved())
- $removed ++;
- }
- }
-
- $output->writeln('');
- }
-
- $output->writeln(' ' . $processed . ' bookmark(s) processed ; ' . $removed . ' orphan(s) removed');
- $output->writeln(' ' . $indexed . ' document indexed ; ' . $extracted . ' fully extracted');
-
- if ($failed > 0)
- $output->writeln(' ' . $failed . ' file(s) were not processed (failure)');
-
- return;
- }
-
- private function getUsers($option)
- {
- if (! $option) {
- $users = array();
- $userSearch = $this->userManager->search('');
- foreach ($userSearch as $user) {
- $users[] = $user->getUID();
- }
- } else {
- $users = $option;
- if (! is_array($users))
- $users = array(
- $users
- );
- }
-
- return $users;
- }
-}
-
-
-
diff --git a/lib/Command/Live.php b/lib/Command/Live.php
deleted file mode 100644
index fe2a38d..0000000
--- a/lib/Command/Live.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Items\ItemDocument;
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Helper\ProgressBar;
-use OCP\IUserManager;
-use OC\Files\Filesystem;
-
-class Live extends Base
-{
-
- const REFRESH_INFO_SYSTEM = 3;
-
- private $userManager;
-
- private $rootFolder;
-
- private $indexService;
-
- private $solrService;
-
- private $solrTools;
-
- private $configService;
-
- private $sourceService;
-
- private $miscService;
-
- private $currentIndexStatus = array();
-
- public function __construct($queueService, $indexService, $solrService, $solrTools, $configService, $sourceService, $miscService)
- {
- parent::__construct();
- $this->queueService = $queueService;
- $this->indexService = $indexService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->configService = $configService;
- $this->sourceService = $sourceService;
- $this->miscService = $miscService;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:live')
- ->setDescription('Instant Index')
- ->addOption('instant', 'i', InputOption::VALUE_NONE, 'Instant indexes');
- }
-
- public function interrupted()
- {
- if ($this->hasBeenInterrupted())
- throw new \Exception('ctrl-c');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $output->writeln('<comment>nextant v' . $this->configService->getAppValue('installed_version') . '</comment>');
- $output->writeln('');
-
- if (! $this->solrService->configured(true)) {
- $output->writeln('Your nextant is not yet configured');
- return;
- }
-
- if ($this->configService->getAppValue('index_live') === '0') {
- $output->writeln('your nextant is not configured for Live Index');
- return;
- }
-
- // $this->miscService->setDebug($input->getOption('debug'));
- // $this->sourceService->file()->setDebug($input->getOption('debug'));
- // $this->indexService->setDebug($input->getOption('debug'));
-
- $this->solrService->setOutput($output);
- $this->indexService->setOutput($output);
- $this->indexService->setParent($this);
- $this->queueService->setParent($this);
-
- $output->writeln('');
-
- $stack = array();
- $lasttick = 0;
-
- $item = null;
- while (true) {
- $catched = false;
-
- try {
- $this->interrupted();
-
- if ($item === null)
- $item = $this->queueService->readQueue(true);
-
- if ($item !== null) {
- if ($input->getOption('instant'))
- $this->queueService->executeItem($item);
- else
- $this->queueService->executeItem($item);
- }
-
- if (! $this->configService->isLockedIndex())
- $this->solrTools->commit(false, $ierror);
-
- $item = null;
- } catch (\Doctrine\DBAL\Exception\DriverException $dbde) {
- $catched = true;
- // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbde->getStatusMessage());
- } catch (\Doctrine\DBAL\Driver\PDOException $dbpdoe2) {
- $catched = true;
- // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbpdoe->getStatusMessage());
- } catch (\PDOException $dbpdoe2) {
- $catched = true;
- // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbpdoe2->getStatusMessage());
- }
-
- if ($catched) {
-
- $dead = false;
- $dbConn = \OC::$server->getDatabaseConnection();
-
- try {
- $dbConn->close();
- } catch (\Exception $ex) {}
-
- try {
- $dbConn->connect();
- } catch (\Exception $ex) {
- $dead = true;
- }
-
- if ($dead)
- break;
- } else
- $output->writeln('');
-
- }
- }
-}
-
-
-
diff --git a/lib/Command/Optimize.php b/lib/Command/Optimize.php
deleted file mode 100644
index 3ea45d2..0000000
--- a/lib/Command/Optimize.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-
-class Optimize extends Base
-{
-
- private $configService;
-
- private $solrService;
-
- private $solrTools;
-
- public function __construct($configService, $solrService, $solrTools)
- {
- parent::__construct();
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:optimize')
- ->setDescription('optimize your Solr core')
- ->addOption('commit', 'm', InputOption::VALUE_NONE, 'Commit only ; Do not optimize.');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- if (! $this->solrService->configured(true)) {
- $output->writeln('Nextant is not yet configured');
- return;
- }
-
- $this->solrService->setClient(array(
- 'timeout' => 36000
- ));
-
- $infos = $this->solrTools->getInfoCore();
- $output->writeln('Your index contains ' . $infos->index->segmentCount . ' segments.');
-
- $helper = $this->getHelper('question');
- if (! $input->getOption('commit')) {
- $question = new ConfirmationQuestion('<question>Your core will not be accessible while optimize is running. Continue with this action? (y/N) </question> ', false);
-
- if (! $helper->ask($input, $output, $question)) {
- return;
- }
- }
-
- if (! $result = $this->solrTools->commit(! $input->getOption('commit')))
- $output->writeln('Operation failed');
- else
- $output->writeln('Operation success (' . gmdate("H:i:s", floor($result->getQueryTime() / 1000)) . ')');
- }
-}
-
-
-
diff --git a/lib/Command/Pick.php b/lib/Command/Pick.php
deleted file mode 100644
index af2c50b..0000000
--- a/lib/Command/Pick.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-
-class Pick extends Base
-{
-
- private $configService;
-
- private $solrService;
-
- private $solrTools;
-
- public function __construct($configService, $solrService, $solrTools)
- {
- parent::__construct();
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- }
-
- protected function configure()
- {
- parent::configure();
- $this->setName('nextant:pick')
- ->setDescription('pick a result from your index')
- ->addArgument('document_id', InputArgument::OPTIONAL, 'id of the document to scan')
- ->addOption('type', 't', InputArgument::OPTIONAL, 'type of the document to search (default: files)')
- ->addOption('search', 's', InputArgument::OPTIONAL, 'keyword to search in the document');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- if (! $this->solrService->configured(true)) {
- $output->writeln('Nextant is not yet configured');
- return;
- }
-
- if (! $id = $input->getArgument('document_id')) {
- $output->writeln('You need to specify the document id');
- return;
- }
-
- switch ($input->getOption('type')) {
- case 'bookmarks':
- $type = 'bookmarks';
- break;
-
- default:
- $type = 'files';
- break;
- }
-
- $result = $this->solrTools->pick($type, $id);
- if ($result->getNumFound() === 0) {
- $output->writeln("Can't find document corresponding that id");
- return;
- }
-
- foreach ($result as $document) {
-
- foreach ($document as $field => $value) {
-
- if ($field === 'text_edge')
- continue;
-
- if (is_array($value))
- $value = implode(', ', $value);
-
- if (is_bool($value))
- $value = ($value) ? 'true' : 'false';
-
- $output->writeln($field . ' -> ' . $value);
- }
-
- if ($kw = $input->getOption('search')) {
- $search = $this->solrService->search($kw, array(
- 'no_owner_check',
- 'limit_document_id' => $type . '_' . $id
- ));
-
- $output->writeln('');
- $output->write("* Searching '" . $kw . "' in that document: ");
- if (sizeof($search) === 0)
- $output->writeln('<error>fail</error>');
- else
- $output->writeln('<info>OK</info>');
- }
-
- $output->writeln('');
- }
- }
-}
-
-
-
diff --git a/lib/Command/Test.php b/lib/Command/Test.php
deleted file mode 100644
index ca44d94..0000000
--- a/lib/Command/Test.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2017
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Command;
-
-use OC\Core\Command\Base;
-use \OCA\Nextant\Service\SolrAdminService;
-use \OCA\Nextant\Service\SolrToolsService;
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\TestService;
-use \OCA\Nextant\Service\IndexService;
-use \OCA\Nextant\Service\ConfigService;
-use \OCA\Nextant\Controller\SettingsController;
-use \OCA\Nextant\Items\ItemDocument;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class Test extends Base {
-
- private $configService;
-
- private $solrService;
-
- private $solrTools;
-
- private $solrAdmin;
-
- private $settingsController;
-
- public function __construct(
- ConfigService $configService, SolrService $solrService, SolrToolsService $solrTools,
- SolrAdminService $solrAdmin, IndexService $indexService,
- SettingsController $settingsController
- ) {
- parent::__construct();
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->solrAdmin = $solrAdmin;
- $this->indexService = $indexService;
- $this->settingsController = $settingsController;
- }
-
- protected function configure() {
- parent::configure();
- $this->setName('nextant:test')
- ->setDescription('test your Nextant configuration')
- ->addArgument('address', InputArgument::REQUIRED, 'address of the solr to test')
- ->addArgument('core', InputArgument::REQUIRED, 'core to test')
- ->addOption(
- 'save', 's', InputOption::VALUE_NONE, 'Save configuration if test is successful'
- );
- }
-
- protected function execute(InputInterface $input, OutputInterface $output) {
-
- if (!$address = $input->getArgument('address')) {
- $output->writeln('You need to specify the address to test');
-
- return;
- }
-
- if (!$core = $input->getArgument('core')) {
- $output->writeln('You need to specify the core');
-
- return;
- }
-
- $tmpConfig = array(
- 'solr_url' => $address,
- 'solr_core' => $core,
- 'solr_timeout' => 30
- );
-
- if (!$this->solrService->setClient($tmpConfig)) {
- $output->writeln('Address is invalid');
-
- return;
- }
-
- // test ping
- if (!$this->test_ping($output)) {
- return;
- }
-
- // test schema
- if (!$this->test_schema($output)) {
- return;
- }
-
- // test extract
- if (!$this->test_extract($output)) {
- return;
- }
-
- // test update
- if (!$this->test_update($output)) {
- return;
- }
-
- // test search
- if (!$this->test_search($output)) {
- return;
- }
-
- // test delete
- if (!$this->test_delete($output)) {
- return;
- }
-
- $output->writeln('');
- $output->writeln('All test results were fine.');
-
- if ($input->getOption("save")) {
- $output->writeln('Saving configuration.');
-
- $this->configService->setAppValue('solr_url', $address);
- $this->configService->setAppValue('solr_core', $core);
- $this->configService->setAppValue('solr_timeout', 30);
-
- if ($this->configService->getAppValue('configured') !== '1') {
- $this->configService->setAppValue('configured', '2');
- }
-
- if ($this->configService->getAppValue('configured') === '2')
- {
- $output->writeln('You will need a first index to finish installation of Nextant.');
- }
- }
- }
-
- private function test_ping($output) {
- $output->write(' - Pinging Solr: ');
- if (!$this->solrAdmin->ping($ierror)) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- $output->writeln('<info>ok</info>');
-
- return true;
- }
-
- private function test_schema($output) {
- $output->write(' - Checking Solr schema: ');
- $ierror = null;
- if (!$this->solrAdmin->checkSchema(true, $ierror)) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- $output->writeln('<info>ok</info>');
-
- return true;
- }
-
- private function test_extract($output) {
- $ierror = null;
- $output->write(' - Extracting test document: ');
- $doc = TestService::generateTestDocument(
- 1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE'
- );
- $data = array(
- $doc
- );
- $solrDocs = null;
- $this->indexService->extract(
- ItemDocument::TYPE_TEST, '_nextant_test', $data, $solrDocs, true, $ierror
- );
-
- if (!$doc->isProcessed()) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- $output->writeln('<info>ok</info>');
-
- return true;
- }
-
- private function test_update($output) {
- $ierror = null;
- $output->write(' - Updating test document: ');
- $doc = TestService::generateTestDocument(
- 1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE2'
- );
- $asource =
- $this->indexService->getDocuments(ItemDocument::TYPE_TEST, '_nextant_test', 1, $ierror);
-
- if ($asource === false || sizeof($asource) != 1 || (!key_exists('test_1', $asource))) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- $source = $asource['test_1'];
-
- $doc->setPath('/LICENSE2');
- $doc->setShare(
- array(
- 'nextant_test_share'
- )
- );
- $doc->setShareGroup(
- array(
- 'nextant_test_share_group'
- )
- );
- $doc->deleted(false);
-
- $data = array(
- $doc
- );
- $this->indexService->updateDocuments(
- ItemDocument::TYPE_TEST, '_nextant_test', $data, $asource, $ierror
- );
-
- if (!$this->solrTools->commit(false, $ierror)) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- if (!$source->isUpdated()) {
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- $output->writeln('<info>ok</info>');
-
- return true;
- }
-
- private function test_search($output) {
- $output->write(' - Searching test document: ');
- $ierror = null;
- $keyword = 'LICENSE';
- $this->solrService->setOwner('_nextant_test');
- if ($result = $this->solrService->search($keyword, array(), $ierror)) {
- if (sizeof($result) > 0) {
-
- foreach ($result as $doc) {
- if ($doc->getType() === ItemDocument::TYPE_TEST && $doc->getId() === 1) {
- $output->writeln('<info>ok</info>');
-
- return true;
- }
- }
-
- // CHECK ID DOCUMENT
- $output->writeln('<error>fail</error>');
-
- return false;
- }
-
- $output->writeln('<error>fail</error>');
-
- return false;
- }
-
- $output->writeln(
- '<error>fail</error> - ' . (($ierror === null) ? "0" : $ierror->getCode())
- );
-
- return false;
- }
-
- private function test_delete($output) {
- $ierror = null;
- $output->write(' - Deleting test document: ');
-
- $doc = new ItemDocument(ItemDocument::TYPE_TEST, 1);
- $data = array(
- $doc
- );
- $this->indexService->removeDocuments($data, $ierror);
- if ($doc->isRemoved()) {
- $output->writeln('<info>ok</info>');
-
- return true;
- }
-
- $output->writeln('<error>fail</error> - ' . ($ierror === null) ? "0" : $ierror->getCode());
-
- return false;
- }
-}
-
-
-
diff --git a/lib/Controller/SearchController.php b/lib/Controller/SearchController.php
deleted file mode 100644
index 7e9e378..0000000
--- a/lib/Controller/SearchController.php
+++ /dev/null
@@ -1,305 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Controller;
-
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Service\BookmarkService;
-use \OCA\Nextant\Service\SolrService;
-use OCP\AppFramework\Controller;
-use OCP\IRequest;
-use OC\Files\Filesystem;
-use OCP\Files\NotFoundException;
-use OC\Files\View;
-
-class SearchController extends Controller
-{
-
- private $userId;
-
- private $groupManager;
-
- private $configService;
-
- private $solrService;
-
- private $sourceService;
-
- private $miscService;
-
- public function __construct($appName, IRequest $request, $userId, $groupManager, $configService, $solrService, $sourceService, $miscService)
- {
- parent::__construct($appName, $request);
-
- $this->userId = $userId;
- $this->groupManager = $groupManager;
- $this->configService = $configService;
-
- $this->solrService = $solrService;
-
- $this->sourceService = $sourceService;
-
- $this->miscService = $miscService;
- }
-
- /**
- * @NoAdminRequired
- */
- public function searchOptions()
- {
- return array(
- 'resource_level' => $this->configService->getAppValue('resource_level'),
- 'index_files_nextant_only' => (($this->configService->getAppValue('index_files_nextant_only') === '1' && $this->configService->getAppValue('index_files_tree') === '1') ? 1 : 0)
- );
- }
-
- /**
- * @NoAdminRequired
- */
- public function searchRequest($query, $current_dir)
- {
- $return = array(
- 'query' => $query,
- 'result' => array()
- );
-
- if (! $this->solrService)
- return $return;
-
- if ($query !== null) {
-
- // $groups
- $groups = array_map(function ($value) {
- return (string) $value;
- }, array_keys($this->groupManager->getUserIdGroups($this->userId)));
- array_push($groups, '__all');
-
- $this->solrService->setOwner($this->userId, $groups);
-
- $solrResult = $this->solrService->search($query, array(
- 'current_directory' => $current_dir
- ));
-
- if (! $solrResult)
- return $return;
-
- $results = array();
- foreach ($solrResult as $item) {
-
- switch ($item->getSource()) {
-
- case 'files':
- $this->sourceService->file()->initUser($this->userId, false);
- $this->sourceService->file()->getSearchResult($item);
- $this->sourceService->file()->endUser();
- break;
-
- case 'bookmarks':
- $this->sourceService->bookmark()->getSearchResult($item);
- break;
-
- default:
- continue;
- }
-
- if (! $item->isValid())
- continue;
-
- $hl1 = '';
- $hl2 = '';
- if ($item->getHighlighting() !== null && is_array($item->getHighlighting())) {
- if (sizeof($item->getHighlighting()) >= 1)
- $hl1 = '... ' . str_replace('<em>', '<span class="nextant_hl">', str_replace('</em>', '</span>', $item->getHighlighting()[0])) . ' ...';
- if (sizeof($item->getHighlighting()) > 1)
- $hl2 = '... ' . str_replace('<em>', '<span class="nextant_hl">', str_replace('</em>', '</span>', $item->getHighlighting()[1])) . ' ...';
- if (sizeof($item->getHighlighting()) > 2)
- $hl1 .= '... ' . str_replace('<em>', '<span class="nextant_hl">', str_replace('</em>', '</span>', $item->getHighlighting()[2])) . ' ...';
- if (sizeof($item->getHighlighting()) > 3)
- $hl2 .= '... ' . str_replace('<em>', '<span class="nextant_hl">', str_replace('</em>', '</span>', $item->getHighlighting()[3])) . ' ...';
- }
-
- $item->setLine(1, $item->getPath());
- $item->setLine(2, $hl1);
- $item->setLine(3, $hl2);
-
- $results[] = $item->toArray();
- }
-
- $return['result'] = $results;
- }
-
- return $return;
- }
-
- /**
- * @NoAdminRequired
- * @NoCSRFRequired
- */
- public function suggestRequest($query)
- {
- $return = array(
- 'query' => $query,
- 'status' => '',
- 'result' => array()
- );
-
- if (! $this->solrService)
- return $return;
-
- if ($query == null || $query === '')
- return $return;
-
- $ierror = null;
- $suggest = $this->solrService->suggest($query, $ierror);
-
- $err = ($ierror == null) ? 0 : $ierror->getCode();
-
- $return['result'] = $suggest;
- $return['status'] = $err;
-
- // $this->miscService->log('>> ' . var_export($return, true));
-
- return $return;
- }
-
- /**
- * @NoCSRFRequired
- * @PublicPage
- */
- public function searchRequestPublic($query, $key)
- {
- $return = array(
- 'query' => $query,
- 'result' => array()
- );
-
- if ($this->configService->getAppValue('index_files_sharelink') !== '1')
- return $return;
-
- if (! $this->solrService)
- return $return;
-
- if (strpos($key, '?') > 0)
- $key = substr($key, 0, strpos($key, '?'));
- if (strpos($key, '#') > 0)
- $key = substr($key, 0, strpos($key, '#'));
-
- $share = \OC\Share\Share::getShareByToken($key);
-
- if (! $share)
- return $return;
-
- if ($query !== null) {
-
- $this->solrService->setOwner('__link_' . $share['id']);
- $solrResult = $this->solrService->search($query, array());
-
- if (! $solrResult)
- return $return;
-
- $results = array();
- foreach ($solrResult as $item) {
-
- $item->sharedPublic(true);
- switch ($item->getSource()) {
-
- case 'files':
- $this->sourceService->file()->initUser($item->getOwner(), false);
- $this->sourceService->file()->getSearchResult($item, $share['file_target'], false);
- $this->sourceService->file()->endUser();
- break;
-
- // case 'bookmarks':
- // $this->sourceService->bookmark()->getSearchResult($item);
- // break;
-
- default:
- continue;
- }
-
- if (! $item->isValid())
- continue;
-
- $hl1 = '';
- $hl2 = '';
- if ($item->getHighlighting() !== null && is_array($item->getHighlighting())) {
- if (sizeof($item->getHighlighting()) >= 1)
- $hl1 = '... ' . $item->getHighlighting()[0] . ' ...';
- if (sizeof($item->getHighlighting()) > 1)
- $hl2 = '... ' . $item->getHighlighting()[1] . ' ...';
- if (sizeof($item->getHighlighting()) > 2)
- $hl1 .= '... ' . $item->getHighlighting()[2] . ' ...';
- if (sizeof($item->getHighlighting()) > 3)
- $hl2 .= '... ' . $item->getHighlighting()[3] . ' ...';
- }
-
- $item->setLine(1, $item->getPath());
- $item->setLine(2, $hl1);
- $item->setLine(3, $hl2);
-
- $results[] = $item->toArray();
- }
-
- $return['result'] = $results;
- }
-
- // $this->miscService->log('' . var_export($return, true));
-
- return $return;
- }
-
- /**
- * @NoCSRFRequired
- * @PublicPage
- */
- public function suggestRequestPublic($query)
- {
- $return = array(
- 'query' => $query,
- 'status' => '',
- 'result' => array()
- );
-
- if (! $this->solrService)
- return $return;
-
- if ($this->configService->getAppValue('index_files_sharelink') !== '1')
- return $return;
-
- if ($query == null || $query === '')
- return $return;
-
- $ierror = null;
- $suggest = $this->solrService->suggest($query, $ierror);
-
- $err = ($ierror == null) ? 0 : $ierror->getCode();
-
- $return['result'] = $suggest;
- $return['status'] = $err;
-
- return $return;
- }
-}
diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php
deleted file mode 100644
index 6132a9a..0000000
--- a/lib/Controller/SettingsController.php
+++ /dev/null
@@ -1,475 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016-2017
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Controller;
-
-use \OCA\Nextant\Service\ConfigService;
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\TestService;
-use \OCA\Nextant\Items\ItemDocument;
-use OCP\AppFramework\Controller;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IRequest;
-
-class SettingsController extends Controller
-{
-
- private $configService;
-
- private $miscService;
-
- private $indexService;
-
- private $solrService;
-
- private $solrTools;
-
- private $solrAdmin;
-
- private $solr_url;
-
- private $solr_core;
-
- private $solr_timeout;
-
- private $l10n;
-
- public function __construct($appName, IRequest $request, ConfigService $configService, $indexService, $solrService, $solrTools, $solrAdmin, $l10n, $miscService)
- {
- parent::__construct($appName, $request);
- $this->configService = $configService;
- $this->indexService = $indexService;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->solrAdmin = $solrAdmin;
- $this->l10n = $l10n;
- $this->miscService = $miscService;
- }
-
- /**
- * @NoCSRFRequired
- */
- public function index()
- {
- $params = [
- 'solr_url' => $this->configService->getAppValue('solr_url'),
- 'solr_core' => $this->configService->getAppValue('solr_core'),
- 'solr_timeout' => $this->configService->getAppValue('solr_timeout')
- ];
-
- return new TemplateResponse($this->appName, 'settings.admin', $params, 'blank');
- }
-
- public function forceIndex()
- {
- $this->configService->needIndexFiles(true);
- }
-
- public function updateSubOptions($instant, $source = '')
- {
- $response = array(
- 'instant' => $instant,
- 'configured' => $this->configService->getAppValue('configured'),
- 'ping' => $this->solrAdmin->ping(),
- 'solr_url' => $this->configService->getAppValue('solr_url'),
- 'solr_core' => $this->configService->getAppValue('solr_core'),
- 'solr_timeout' => $this->configService->getAppValue('solr_timeout'),
- 'nextant_version' => $this->configService->getAppValue('installed_version'),
- 'index_files' => $this->configService->getAppValue('index_files'),
- 'index_files_needed' => $this->configService->getAppValue('index_files_needed'),
- 'index_files_max_size' => $this->configService->getAppValue('index_files_max_size'),
- 'index_files_tree' => $this->configService->getAppValue('index_files_tree'),
- 'index_files_nextant_only' => $this->configService->getAppValue('index_files_nextant_only'),
- 'index_files_trash' => $this->configService->getAppValue('index_files_trash'),
- 'index_files_sharelink' => $this->configService->getAppValue('index_files_sharelink'),
- 'index_files_federated' => $this->configService->getAppValue('index_files_federated'),
- 'index_files_external' => $this->configService->getAppValue('index_files_external'),
- 'index_files_encrypted' => $this->configService->getAppValue('index_files_encrypted'),
- 'index_files_filters_text' => $this->configService->getAppValue('index_files_filters_text'),
- 'index_files_filters_pdf' => $this->configService->getAppValue('index_files_filters_pdf'),
- 'index_files_filters_office' => $this->configService->getAppValue('index_files_filters_office'),
- 'index_files_filters_image' => $this->configService->getAppValue('index_files_filters_image'),
- 'index_files_filters_audio' => $this->configService->getAppValue('index_files_filters_audio'),
- 'index_files_filters_extensions' => self::FileFiltersExtensionsAsList($this->configService->getAppValue('index_files_filters_extensions')),
- 'current_docs' => $this->solrTools->count('files'),
- 'current_segments' => (($this->solrTools->getInfoCore()) ? $this->solrTools->getInfoCore()->index->segmentCount : ''),
- 'files_external_app_enabled' => (\OCP\App::isEnabled('files_external')),
- 'bookmarks_app_enabled' => (\OCP\App::isEnabled('bookmarks')),
- 'index_bookmarks' => $this->configService->getAppValue('index_bookmarks'),
- 'index_bookmarks_needed' => $this->configService->getAppValue('index_bookmarks_needed'),
- 'resource_level' => $this->configService->getAppValue('resource_level'),
- 'index_live' => $this->configService->getAppValue('index_live'),
- 'use_cron' => $this->configService->getAppValue('use_cron'),
- 'index_delay_min' => $this->configService->getAppValue('index_delay_min'),
- 'index_delay_max' => $this->configService->getAppValue('index_delay_max'),
- 'index_locked' => $this->configService->getAppValue('index_locked'),
- 'index_files_last' => $this->configService->getAppValue('index_files_last'),
- 'index_files_last_format' => date('r', $this->configService->getAppValue('index_files_last')),
- 'index_bookmarks_last' => $this->configService->getAppValue('index_bookmarks_last'),
- 'index_bookmarks_last_format' => date('r', $this->configService->getAppValue('index_bookmarks_last')),
- 'ext_sysvmsg_loaded' => extension_loaded('sysvmsg'),
- 'source' => $source
- );
- // 'index_live_queuekey' => $this->configService->getAppValue('index_live_queuekey'),
-
- return $response;
- }
-
- public function setOptionsFiles($index_files, $index_files_max_size, $index_files_tree, $index_files_nextant_only, $index_files_trash, $index_files_sharelink, $index_files_federated, $index_files_external, $index_files_encrypted, $index_files_filters)
- {
- $this->configService->setAppValue('index_files', $index_files);
- $this->configService->setAppValue('index_files_tree', $index_files_tree);
- $this->configService->setAppValue('index_files_nextant_only', $index_files_nextant_only);
- $this->configService->setAppValue('index_files_trash', $index_files_trash);
- $this->configService->setAppValue('index_files_sharelink', $index_files_sharelink);
- $this->configService->setAppValue('index_files_federated', $index_files_federated);
- $this->configService->setAppValue('index_files_external', $index_files_external);
- $this->configService->setAppValue('index_files_encrypted', $index_files_encrypted);
- $this->configService->setAppValue('index_files_max_size', $index_files_max_size);
- $this->configService->setAppValue('index_files_filters', $index_files_filters);
-
- return $this->updateSubOptions(false, 'files');
- }
-
- public function setOptionsFilesFilters($index_files_filters_text, $index_files_filters_pdf, $index_files_filters_office, $index_files_filters_image, $index_files_filters_audio, $index_files_filters_extensions)
- {
- $this->configService->setAppValue('index_files_filters_text', $index_files_filters_text);
- $this->configService->setAppValue('index_files_filters_pdf', $index_files_filters_pdf);
- $this->configService->setAppValue('index_files_filters_office', $index_files_filters_office);
- $this->configService->setAppValue('index_files_filters_image', $index_files_filters_image);
- $this->configService->setAppValue('index_files_filters_audio', $index_files_filters_audio);
-
- $this->configService->setAppValue('index_files_filters_extensions', self::FileFiltersExtensionsAsString($index_files_filters_extensions));
-
- return $this->updateSubOptions(false, 'files_filters');
- }
-
- public function setOptionsBookmarks($index_bookmarks)
- {
- $this->configService->setAppValue('index_bookmarks', $index_bookmarks);
-
- return $this->updateSubOptions(false, 'bookmarks');
- }
-
- public function setOptionsStatus($resource_level, $index_live, $use_cron, $index_delay_min, $index_delay_max, $force_index)
- {
- $this->configService->setAppValue('resource_level', $resource_level);
-
- // if ($index_live === '1') {
- // if (extension_loaded('sysvmsg')) {
-
- // if ($this->configService->getAppValue('index_live') !== '1')
- // $this->configService->setAppValue('index_live_queuekey', rand(20000, 990000));
-
- // $this->configService->setAppValue('index_live', $index_live);
- // }
- // } else {
- $this->configService->setAppValue('index_live', $index_live);
- // }
-
- $this->configService->setAppValue('use_cron', $use_cron);
-
- $this->configService->setAppValue('index_delay_min', $index_delay_min);
- if ($index_delay_max > 0)
- $this->configService->setAppValue('index_delay_max', $index_delay_max);
-
- if ($force_index === '1') {
- $this->configService->setAppValue('configured', '1');
- $this->configService->needIndexFiles(true);
- }
-
- return $this->updateSubOptions(false, 'status');
- }
-
- public function setSettings($solr_url, $solr_core, $solr_timeout, $command)
- {
- $this->solr_url = $solr_url;
- $this->solr_core = $solr_core;
- $this->solr_timeout = $solr_timeout;
-
- $tmpConfig = array(
- 'solr_url' => $solr_url,
- 'solr_core' => $solr_core,
- 'solr_timeout' => $solr_timeout
- );
-
- // testing with use __nextant_test_owner from the group __nextant_share_group
- $this->solrService->setOwner('__nextant_test_owner', array(
- '__nextant_share_group'
- ));
-
- $message = '';
- $result = false;
- if (! $this->solrService->setClient($tmpConfig))
- $message = $this->l10n->t('Address-format incorrect');
- else {
-
- switch ($command) {
- case 'ping':
- $result = $this->test_ping($message);
- break;
-
- case 'schema':
- $result = $this->test_schema($message);
- break;
-
- case 'extract':
- $result = $this->test_extract($message);
- break;
-
- case 'update':
- $result = $this->test_update($message);
- break;
-
- case 'search':
- $result = $this->test_search($message);
- break;
-
- case 'delete':
- $result = $this->test_delete($message);
- break;
-
- case 'save':
- $result = $this->save($message);
- break;
- }
- }
-
- $response = array(
- 'command' => $command,
- 'status' => $result ? 'success' : 'failure',
- 'message' => $message
- );
-
- return $response;
- }
-
- // Wiki Error 9
- private function test_ping(&$message)
- {
- if ($this->solrAdmin->ping($ierror)) {
- $message = $this->l10n->t('Apache Solr is up, running and responding to ping query');
- return true;
- }
-
- $message = $this->l10n->t('Apache Solr is not responding to ping query (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- private function test_schema(&$message)
- {
- if ($this->solrAdmin->checkSchema(true, $ierror)) {
- $message = $this->l10n->t('Schema is fine');
- return true;
- }
-
- $message = $this->l10n->t('Unable to verify/fix schema integrity (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- private function test_extract(&$message)
- {
- $doc = TestService::generateTestDocument(1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE');
-
- $data = array(
- $doc
- );
- $solrDocs = null;
- $this->indexService->extract(ItemDocument::TYPE_TEST, '_nextant_test', $data, $solrDocs, true, $ierror);
-
- if ($doc->isProcessed()) {
- $message = $this->l10n->t('Text extracted');
- return true;
- }
-
- $message = $this->l10n->t('Extraction failed. Please check the configuration of your Solr server (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- private function test_update(&$message)
- {
- $doc = TestService::generateTestDocument(1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE2');
- $asource = $this->indexService->getDocuments(ItemDocument::TYPE_TEST, '_nextant_test', 1, $ierror);
-
- if ($asource === false || sizeof($asource) != 1 || (! key_exists('test_1', $asource))) {
- $message = $this->l10n->t('Error updating field - Can\'t find original document - (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- $source = $asource['test_1'];
-
- $doc->setPath('/LICENSE2');
- $doc->setShare(array(
- 'nextant_test_share'
- ));
- $doc->setShareGroup(array(
- 'nextant_test_share_group'
- ));
- $doc->deleted(false);
-
- $data = array(
- $doc
- );
- $this->indexService->updateDocuments(ItemDocument::TYPE_TEST, '_nextant_test', $data, $asource, $ierror);
-
- if (! $this->solrTools->commit(false, $ierror)) {
- $message = $this->l10n->t('Error during commit (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- if (! $source->isUpdated()) {
- $message = $this->l10n->t('Error while updating field (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- $message = $this->l10n->t('Document updated');
- return true;
- }
-
- private function test_search(&$message)
- {
- $keyword = 'LICENSE';
- $this->solrService->setOwner('_nextant_test');
- if ($result = $this->solrService->search($keyword, array(), $ierror)) {
- if (sizeof($result) > 0) {
-
- foreach ($result as $doc) {
- if ($doc->getType() === ItemDocument::TYPE_TEST && $doc->getId() === 1) {
- $message = $this->l10n->t('Found it');
- return true;
- }
- }
-
- // CHECK ID DOCUMENT
- $message = $this->l10n->t('Found something, but not what was expected.');
- return false;
- }
-
- $message = $this->l10n->t('Cannot find any document');
- return false;
- }
-
- $message = $this->l10n->t('Search failed. Please check the configuration of your Solr server (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- private function test_delete(&$message)
- {
- $doc = new ItemDocument(ItemDocument::TYPE_TEST, 1);
- $data = array(
- $doc
- );
- $this->indexService->removeDocuments($data, $ierror);
- if ($doc->isRemoved()) {
- $message = $this->l10n->t('Test-document deleted');
- return true;
- }
-
- $message = $this->l10n->t('Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)', array(
- $ierror->getCode()
- ));
- return false;
- }
-
- private function save(&$message)
- {
- if (! is_null($this->solr_url) && ! is_null($this->solr_core) && ! is_null($this->solr_timeout)) {
-
- if ($this->solr_timeout < 5)
- $this->solr_timeout = 5;
-
- $this->configService->setAppValue('solr_url', $this->solr_url);
- $this->configService->setAppValue('solr_core', $this->solr_core);
- $this->configService->setAppValue('solr_timeout', $this->solr_timeout);
-
- if ($this->configService->getAppValue('configured') !== '1') {
- $this->configService->setAppValue('configured', '2');
- // if (! extension_loaded('sysvmsg'))
- // $this->configService->setAppValue('index_live', '2');
- }
-
- $message = $this->l10n->t('Your configuration has been saved');
- return true;
- }
-
- $message = $this->l10n->t('Configuration could not be saved. Please reload this page.');
- return false;
- }
-
-
- public static function FileFiltersExtensionsAsArray($text)
- {
- $extensions = array();
- if ($text == '')
- return $extensions;
-
- $lines = explode("\n", $text);
- foreach ($lines as $line) {
- $exts = explode(' ', $line);
- foreach ($exts as $ext) {
- $ext = trim($ext);
- if (strlen($ext) > 1 && substr($ext, 0, 1) === '.' && ! in_array($ext, $extensions))
- $extensions[] = $ext;
- }
- }
-
- return $extensions;
- }
-
- public static function FileFiltersExtensionsAsString($arr)
- {
- if (! is_array($arr))
- $arr = self::FileFiltersExtensionsAsArray($arr);
- return implode(' ', $arr);
- }
-
- public static function FileFiltersExtensionsAsList($text)
- {
- $a = self::FileFiltersExtensionsAsArray($text);
-
- $lines = array();
- $chunk = array_chunk($a, 6);
- foreach ($chunk as $c) {
- $lines[] = self::FileFiltersExtensionsAsString($c);
- }
-
- return implode("\n", $lines);
- }
-}
diff --git a/lib/Cron/BackgroundIndex.php b/lib/Cron/BackgroundIndex.php
deleted file mode 100644
index eb60309..0000000
--- a/lib/Cron/BackgroundIndex.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Cron;
-
-use \OCA\Nextant\AppInfo\Application;
-
-class BackgroundIndex extends \OC\BackgroundJob\TimedJob
-{
-
- private $configService;
-
- private $solrAdmin;
-
- private $miscService;
-
- private $sourceService;
-
- public function __construct()
- {
- $this->setInterval(5); // 2 minutes
- }
-
- protected function run($argument)
- {
- $app = new Application();
- $c = $app->getContainer();
-
- $this->configService = $c->query('ConfigService');
-
- if ($this->configService->getAppValue('use_cron') !== '1')
- return;
-
- $backgroundService = $c->query('BackgroundService');
- $backgroundService->run();
- }
-}
diff --git a/lib/Db/LiveQueue.php b/lib/Db/LiveQueue.php
deleted file mode 100644
index c7310ef..0000000
--- a/lib/Db/LiveQueue.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Db;
-
-use \OCA\Nextant\Items\ItemQueue;
-use OCP\AppFramework\Db\Entity;
-
-class LiveQueue extends Entity
-{
-
- public $id;
-
- public $item;
-
- public function __construct($item = null)
- {
- $this->setItem(ItemQueue::toJson($item));
- }
-}
-
diff --git a/lib/Db/LiveQueueMapper.php b/lib/Db/LiveQueueMapper.php
deleted file mode 100644
index 718a4e3..0000000
--- a/lib/Db/LiveQueueMapper.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Db;
-
-use OCA\Nextant\Db\LiveQueue;
-use \OCA\Nextant\Items\ItemQueue;
-use OCP\IDBConnection;
-use OCP\AppFramework\Db\Mapper;
-
-class LiveQueueMapper extends Mapper
-{
-
- const TABLENAME = 'nextant_live_queue';
-
- public function __construct(IDBConnection $db)
- {
- parent::__construct($db, self::TABLENAME, 'OCA\Nextant\Db\LiveQueue');
- }
-
- public function find($id)
- {
- $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' WHERE id = ?';
- return $this->findEntity($sql, [
- $id
- ]);
- }
-
- public function next($keepit = false)
- {
- try {
- // $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' ORDER BY id ASC LIMIT 0, 1';
- $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' ORDER BY id ASC LIMIT 1';
- $result = $this->findEntity($sql, []);
- } catch (\OCP\AppFramework\Db\DoesNotExistException $dnee) {
- return false;
- }
-
- if (! $keepit) {
- $this->delete($result);
- }
-
- return $result;
- }
-
- public function clear()
- {
- $sql = 'TRUNCATE *PREFIX*' . self::TABLENAME;
- return $this->execute($sql);
- }
-}
-
diff --git a/lib/Events/BookmarksEvents.php b/lib/Events/BookmarksEvents.php
deleted file mode 100644
index d9c8148..0000000
--- a/lib/Events/BookmarksEvents.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Events;
-
-use \OCA\Nextant\Service\MiscService;
-
-class BookmarksEvents
-{
-
- private $configService;
-
- private $userId;
-
- private $solrService;
-
- private $miscService;
-
- public function __construct($configService, $userId, $solrService, $miscService)
- {
- $this->userId = $userId;
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->miscService = $miscService;
-
- $this->solrService->setOwner($this->userId);
- }
-
- /**
- * onBookmarkAdd()
- *
- * @param number $bookmarkId
- */
- public function onBookmarkAdd($bookmarkId)
- {
- if ($this->configService->getAppValue('index_bookmarks') === '1')
- $this->configService->needIndexBookmarks(true);
- }
-
- /**
- * onBookmarkEdit()
- *
- * @param number $bookmarkId
- */
- public function onBookmarkEdit($bookmarkId)
- {
- if ($this->configService->getAppValue('index_bookmarks') === '1')
- $this->configService->needIndexBookmarks(true);
- }
-
- /**
- * onBookmarkRemove()
- *
- * @param number $bookmarkId
- */
- public function onBookmarkDelete($bookmarkId)
- {
- if ($this->configService->getAppValue('index_bookmarks') === '1')
- $this->configService->needIndexBookmarks(true);
- }
-}
-
diff --git a/lib/Events/FilesEvents.php b/lib/Events/FilesEvents.php
deleted file mode 100644
index e9c46ae..0000000
--- a/lib/Events/FilesEvents.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Events;
-
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Service\MiscService;
-use \OCA\Nextant\Events\FilesEvents;
-use \OCA\Nextant\Items\ItemQueue;
-use OC\Files\Filesystem;
-
-class FilesEvents
-{
-
- const FILE_CREATE = 'files_file_create';
-
- const FILE_UPDATE = 'files_file_update';
-
- const FILE_RENAME = 'files_file_rename';
-
- const FILE_TRASH = 'files_file_trash';
-
- const FILE_DELETE = 'files_file_delete';
-
- const FILE_RESTORE = 'files_file_restore';
-
- const FILE_SHARE = 'files_file_share';
-
- const FILE_UNSHARE = 'files_file_unshare';
-
- private $userId;
-
- private $configService;
-
- private $queueService;
-
- private $miscService;
-
- public function __construct($userId, $configService, $queueService, $miscService)
- {
- $this->userId = $userId;
- $this->configService = $configService;
- $this->queueService = $queueService;
- $this->miscService = $miscService;
- }
-
- /**
- * onFileCreate()
- *
- * @param string $path
- */
- public function onFileCreate($path)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($path, Filesystem::getView());
- if ($file === false)
- return;
-
- if ($file->getId() > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_CREATE, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileUpdate()
- *
- * @param string $path
- */
- public function onFileUpdate($path)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($path, Filesystem::getView());
- if ($file->getId() > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_UPDATE, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileRename()
- *
- * @param string $target
- */
- public function onFileRename($target)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($target, Filesystem::getView());
- if ($file->getId() > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_RENAME, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileTrash()
- *
- * @param string $path
- */
- public function onFileTrash($path)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($path, Filesystem::getView());
- if ($file->getId() > 0) {
- if ($this->configService->getAppValue('index_files_trash') === '1' && \OCP\App::isEnabled('files_trashbin'))
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_TRASH, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- else
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_DELETE, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- return;
- }
- }
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileDelete()
- *
- * @param string $path
- */
- public function onFileDelete($path)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($path, new \OC\Files\View('/' . $this->userId));
-
- if (! $file)
- return;
-
- if ($file->getId() > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_DELETE, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId(),
- 'folder' => ($file->getType() === \OCP\Files\FileInfo::TYPE_FOLDER)
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileRestore
- *
- * @param string $path
- */
- public function onFileRestore($path)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- $file = FileService::getFileInfoFromPath($path, Filesystem::getView());
- if ($file->getId() > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_RESTORE, array(
- 'userid' => $this->userId,
- 'fileid' => $file->getId()
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileShare
- *
- * @param string $path
- */
- public function onFileShare($fileId)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- if ($fileId > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_SHARE, array(
- 'userid' => $this->userId,
- 'fileid' => $fileId
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-
- /**
- * onFileUnshare
- *
- * @param string $path
- */
- public function onFileUnshare($fileId)
- {
- if ($this->configService->getAppValue('index_live') !== '0') {
- if ($fileId > 0)
- $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_UNSHARE, array(
- 'userid' => $this->userId,
- 'fileid' => $fileId
- )));
- } else
- $this->configService->needIndexFiles(true);
- }
-}
-
diff --git a/lib/Hooks/BookmarksHooks.php b/lib/Hooks/BookmarksHooks.php
deleted file mode 100644
index cff3498..0000000
--- a/lib/Hooks/BookmarksHooks.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Hooks;
-
-/**
- * init Files' Events
- */
-class BookmarksHooks
-{
-
- /**
- * retreive the BookmarksEvents' Controller
- *
- * @return BookmarksHooks
- */
- static protected function getController()
- {
- $app = new \OCA\Nextant\AppInfo\Application();
- return $app->getContainer()->query('BookmarksEvents');
- }
-
- /**
- * hook events: bookmark added
- *
- * @param array $params
- * The hook params
- */
- public static function bookmarkAdd($params)
- {
- self::getController()->onBookmarkAdd($params['id']);
- }
-
- /**
- * hook events: bookmark edited
- *
- * @param array $params
- * The hook params
- */
- public static function bookmarkEdit($params)
- {
- self::getController()->onBookmarkEdit($params['id']);
- }
-
- /**
- * hook events: bookmark deleted
- *
- * @param array $params
- * The hook params
- */
- public static function bookmarkDelete($params)
- {
- self::getController()->onBookmarkDelete($params['id']);
- }
-}
-
diff --git a/lib/Hooks/FilesHooks.php b/lib/Hooks/FilesHooks.php
deleted file mode 100644
index cfb91ce..0000000
--- a/lib/Hooks/FilesHooks.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Hooks;
-
-/**
- * init Files' Events
- */
-class FilesHooks
-{
-
- /**
- * retreive the FilesEvents' Controller
- *
- * @return FilesHooks
- */
- static protected function getController()
- {
- $app = new \OCA\Nextant\AppInfo\Application();
- return $app->getContainer()->query('FilesEvents');
- }
-
- /**
- * hook events: file is created
- *
- * @param array $params
- * The hook params
- */
- public static function fileCreated($params)
- {
- self::getController()->onFileCreate($params['path']);
- }
-
- /**
- * hook events: file is updated
- *
- * @param array $params
- */
- public static function fileUpdated($params)
- {
- self::getController()->onFileUpdate($params['path']);
- }
-
- /**
- * hook events: file is renamed
- *
- * @param array $params
- */
- public static function fileRenamed($params)
- {
- self::getController()->onFileRename($params['newpath']);
- }
-
- /**
- * hook event: file is sent to trashbin
- *
- * @param array $params
- */
- public static function fileTrashed($params)
- {
- self::getController()->onFileTrash($params['path']);
- }
-
- /**
- * hook event: file is deleted
- *
- * @param array $params
- */
- public static function fileDeleted($params)
- {
- self::getController()->onFileDelete($params['path']);
- }
-
- /**
- * hook event: file is restored
- *
- * @param array $params
- */
- public static function fileRestored($params)
- {
- self::getController()->onFileRestore($params['filePath']);
- }
-
- /**
- * hook event: file is shared
- *
- * @param array $params
- */
- public static function fileShared($params)
- {
- self::getController()->onFileShare($params['itemSource']);
- }
-
- /**
- * hook event: file is unshared
- *
- * @param array $params
- */
- public static function fileUnshared($params)
- {
- if (key_exists('itemSource', $params))
- self::getController()->onFileUnshare($params['itemSource']);
- }
-}
-
diff --git a/lib/Items/ItemDocument.php b/lib/Items/ItemDocument.php
deleted file mode 100644
index 7fd8890..0000000
--- a/lib/Items/ItemDocument.php
+++ /dev/null
@@ -1,630 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Items;
-
-class ItemDocument
-{
-
- const TYPE_TEST = 'test';
-
- const TYPE_FILE = 'files';
-
- const TYPE_BOOKMARK = 'bookmarks';
-
- private $test = false;
-
- private $type;
-
- private $source;
-
- private $owner;
-
- private $path;
-
- private $mimetype;
-
- private $size;
-
- private $absolutePath = null;
-
- private $mtime;
-
- private $share;
-
- private $sharegroup;
-
- private $storage_local;
-
- private $content_type;
-
- private $content_type_mime;
-
- private $content_type_charset;
-
- private $score;
-
- private $lines = array();
-
- private $highlighting;
-
- private $needExtract = false;
-
- private $needUpdate = false;
-
- private $public = false;
-
- private $external = false;
-
- private $federated = false;
-
- private $shared = false;
-
- private $sharedpublic = false;
-
- private $encrypted = false;
-
- private $extractable = false;
-
- private $indexed = false;
-
- private $extracted = false;
-
- private $processed = false;
-
- private $deleted = false;
-
- private $removed = false;
-
- private $updated = false;
-
- private $noindex = false;
-
- private $failedIndex = false;
-
- private $failedExtract = false;
-
- private $failedUpdate = false;
-
- private $entry = null;
-
- private $temp = false;
-
- private $valid = false;
-
- private $synced = false;
-
- public function __construct($type = '', $id = 0)
- {
- $this->type = $type;
- $this->id = $id;
- }
-
- public function setType($type)
- {
- $this->type = $type;
- }
-
- public function getType()
- {
- return $this->type;
- }
-
- public function setId($id)
- {
- $this->id = $id;
- }
-
- public function getId()
- {
- return (int) $this->id;
- }
-
- public function test($test)
- {
- $this->test = $test;
- }
-
- public function isTest()
- {
- return $this->test;
- }
-
- public function setSource($source)
- {
- $this->source = $source;
- }
-
- public function getSource()
- {
- return $this->source;
- }
-
- public function setOwner($owner)
- {
- $this->owner = $owner;
- }
-
- public function getOwner()
- {
- return $this->owner;
- }
-
- public function setPath($path)
- {
- $this->path = $path;
- }
-
- public function getPath()
- {
- return $this->path;
- }
-
- public function setMimetype($mimetype)
- {
- $this->mimetype = $mimetype;
- }
-
- public function getMimetype()
- {
- return $this->mimetype;
- }
-
- public function setSize($size)
- {
- $this->size = $size;
- }
-
- public function getSize()
- {
- return $this->size;
- }
-
- public function setEntry($entry)
- {
- $this->entry = $entry;
- }
-
- public function getEntry()
- {
- return $this->entry;
- }
-
- public function setAbsolutePath($absolutePath, $temp = false)
- {
- $this->absolutePath = $absolutePath;
- $this->temp = $temp;
- }
-
- public function getAbsolutePath()
- {
- return $this->absolutePath;
- }
-
- public function setMTime($mtime)
- {
- $this->mtime = $mtime;
- }
-
- public function getMTime()
- {
- return (int) $this->mtime;
- }
-
- public function setShare($share = array())
- {
- if (! is_array($share))
- $share = array();
- $this->share = $share;
- }
-
- public function getShare()
- {
- return $this->share;
- }
-
- public function setShareGroup($share = array())
- {
- if (! is_array($share))
- $share = array();
- $this->sharegroup = $share;
- }
-
- public function getShareGroup()
- {
- return $this->sharegroup;
- }
-
- public function setHighlighting($high)
- {
- $this->highlighting = $high;
- }
-
- public function getHighlighting()
- {
- return $this->highlighting;
- }
-
- public function setContentType($type)
- {
- $this->content_type = $type;
-
- if (strpos($type, ';') === false) {
- $this->content_type_mime = $type;
- return;
- }
-
- list ($this->content_type_mime, $this->content_type_charset) = explode(';', $type);
- }
-
- public function getContentType()
- {
- return $this->content_type;
- }
-
- public function getContentMime()
- {
- return $this->content_type_mime;
- }
-
- public function getContentCharset()
- {
- return $this->content_type_charset;
- }
-
- public function setScore($score)
- {
- $this->score = $score;
- }
-
- public function getScore()
- {
- return $this->score;
- }
-
- public function setLine($nb, $html)
- {
- $this->lines[$nb] = $html;
- }
-
- public function getLine($nb)
- {
- if (key_exists($nb, $this->lines))
- return $this->lines[$nb];
-
- return '';
- }
-
- public function storageLocal($local)
- {
- $this->storage_local = $local;
- }
-
- public function isStorageLocal()
- {
- return $this->storage_local;
- }
-
- public function federated($fed)
- {
- $this->federated = $fed;
- }
-
- public function isFederated()
- {
- return $this->federated;
- }
-
- public function needExtract($need)
- {
- $this->needExtract = $need;
- }
-
- public function neededExtract()
- {
- return $this->needExtract;
- }
-
- public function needUpdate($need)
- {
- $this->needUpdate = $need;
- }
-
- public function neededUpdate()
- {
- return $this->needUpdate;
- }
-
- public function external($external)
- {
- $this->external = $external;
- }
-
- public function isExternal()
- {
- return $this->external;
- }
-
- public function encrypted($encrypted)
- {
- $this->encrypted = $encrypted;
- }
-
- public function isEncrypted()
- {
- return $this->encrypted;
- }
-
- public function shared($shared)
- {
- $this->shared = $shared;
- }
-
- public function isShared()
- {
- return $this->shared;
- }
-
- public function extractable($extractable)
- {
- $this->extractable = $extractable;
- }
-
- public function isExtractable()
- {
- return $this->extractable;
- }
-
- public function indexed($indexed)
- {
- $this->indexed = $indexed;
- }
-
- public function isIndexed()
- {
- return $this->indexed;
- }
-
- public function extracted($extracted)
- {
- $this->extracted = $extracted;
- }
-
- public function isExtracted()
- {
- return $this->extracted;
- }
-
- public function processed($processed)
- {
- $this->processed = $processed;
- }
-
- public function isProcessed()
- {
- return $this->processed;
- }
-
- public function deleted($deleted)
- {
- $this->deleted = $deleted;
- }
-
- public function isDeleted()
- {
- return $this->deleted;
- }
-
- public function removed($removed)
- {
- $this->removed = $removed;
- }
-
- public function isRemoved()
- {
- return $this->removed;
- }
-
- public function updated($updated)
- {
- $this->updated = $updated;
- }
-
- public function isUpdated()
- {
- return $this->updated;
- }
-
- public function noIndex($noindex)
- {
- $this->noindex = $noindex;
- }
-
- public function isNoIndex()
- {
- return $this->noindex;
- }
-
- public function failedIndex($index)
- {
- $this->failedIndex = $index;
- }
-
- public function isFailedIndex()
- {
- return $this->failedIndex;
- }
-
- public function failedExtract($failed)
- {
- $this->failedExtract = $failed;
- }
-
- public function isFailedExtract()
- {
- return $this->failedExtract;
- }
-
- public function failedUpdate($failed)
- {
- $this->failedUpdate = $failed;
- }
-
- public function isFailedUpdate()
- {
- return $this->failedUpdate;
- }
-
- public function synced($synced)
- {
- $this->synced = $synced;
- }
-
- public function isSynced()
- {
- return $this->synced;
- }
-
- public function isTemp()
- {
- return $this->temp;
- }
-
- public function sharedPublic($pub)
- {
- $this->sharedpublic = $pub;
- }
-
- public function isSharedPublic()
- {
- return $this->sharedpublic;
- }
-
- public function valid($valid)
- {
- $this->valid = $valid;
- }
-
- public function isValid()
- {
- return $this->valid;
- }
-
- public static function fromCompleteId($str)
- {
- list ($type, $id) = explode('_', $str, 2);
- return new ItemDocument($type, $id);
- }
-
- public static function fromSolr($document)
- {
- $item = self::fromCompleteId($document->id);
- $item->setPath($document->nextant_path);
- $item->setMTime($document->nextant_mtime);
- $item->setSource($document->nextant_source);
- $item->isDeleted($document->nextant_deleted);
- $item->setOwner($document->nextant_owner);
- $item->setScore($document->score);
- if (is_array($document->nextant_attr_content_type) && sizeof($document->nextant_attr_content_type) > 0)
- $item->setContentType($document->nextant_attr_content_type[0]);
-
- return $item;
- }
-
- public static function fromItemQueue($type, $queue)
- {
- $item = new ItemDocument($type, $queue->getFileId());
- $item->setOwner($queue->getUserId());
-
- return $item;
- }
-
- public static function getItem($list, $item)
- {
- if ($list == null || $item == null || ! is_array($list))
- return null;
-
- if (isset($list[$item->getType() . '_' . $item->getId()]))
- return $list[$item->getType() . '_' . $item->getId()];
-
- return null;
- }
-
- public function toArray($complete = false)
- {
- $arr = array(
- 'entry' => $this->getEntry(),
- 'data' => array(
- 'id' => $this->getId(),
- 'type' => $this->getType(),
- 'path' => $this->getPath(),
- 'deleted' => $this->isDeleted(),
- 'shared' => $this->isShared(),
- 'score' => $this->getScore(),
- 'lines' => $this->lines
- )
- );
-
- if ($complete)
- $arr['complete'] = $complete = array(
- 'type' => $this->getType(),
- 'source' => $this->getSource(),
- 'owner' => $this->getOwner(),
- 'path' => $this->getPath(),
- 'mimetype' => $this->getMimetype(),
- 'size' => $this->getSize(),
- 'absolutepath' => $this->getAbsolutePath(),
- 'mtime' => $this->getMTime(),
- 'share' => $this->getShare(),
- 'sharegroup' => $this->getSharegroup(),
- 'storage_local' => (($this->isStorageLocal()) ? 'y' : 'n'),
- 'needextract' => $this->neededExtract(),
- 'needUpdate' => $this->neededUpdate(),
- 'external' => $this->isExternal(),
- 'encrypted' => $this->isEncrypted(),
- 'extractable' => $this->isExtractable(),
- 'indexed' => $this->isIndexed(),
- 'extracted' => $this->isExtracted(),
- 'processed' => $this->isProcessed(),
- 'deleted' => $this->isDeleted(),
- 'removed' => $this->isRemoved(),
- 'updated' => $this->isUpdated(),
- 'failedIndex' => $this->isFailedIndex(),
- 'failedExtract' => $this->isFailedExtract(),
- 'failedUpdate' => $this->isFailedUpdate(),
- 'temp' => $this->isTemp(),
- 'valid' => $this->isValid(),
- 'synced' => $this->isSynced()
- );
-
- return $arr;
- }
-
- public function toString($complete = false)
- {
- return json_encode($this->toArray($complete));
- }
-} \ No newline at end of file
diff --git a/lib/Items/ItemError.php b/lib/Items/ItemError.php
deleted file mode 100644
index 6649c23..0000000
--- a/lib/Items/ItemError.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Items;
-
-class ItemError
-{
-
- const EXCEPTION_DECRYPTION_FAILED = 1046;
-
- const EXCEPTION_ENCRYPT_NO_MODULE = 1040;
-
- const LINK_EXCEPTION_DECRYPTION_FAILED = 'https://help.nextcloud.com/t/nextant-regarding-encrypted-files/5422';
-
- const EXCEPTION_DECRYPT_PRIVATEKEY_MISSING = 1050;
-
- const LINK_EXCEPTION_DECRYPT_PRIVATEKEY_MISSING = 'https://help.nextcloud.com/t/nextant-regarding-encrypted-files/5422';
-
- const EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH = 2234;
-
- const ERROR_MANAGING_FAILURE = 1129;
-
- const ERROR_SOLR_NOT_FULLY_CONFIGURED = 9938;
-
- const ERROR_GET_SOLARIUM_CLIENT = 9939;
-
- private $errorcode;
-
- private $message;
-
- private $link = '';
-
- public function __construct($code = 0, $msg = '')
- {
- $this->errorcode = $code;
- $this->message = $msg;
- }
-
- public function getCode()
- {
- return $this->errorcode;
- }
-
- public function getMessage()
- {
- return $this->message;
- }
-
- public function link($link)
- {
- $this->link = $link;
- }
-
- public function getLink()
- {
- return $this->link;
- }
-} \ No newline at end of file
diff --git a/lib/Items/ItemQueue.php b/lib/Items/ItemQueue.php
deleted file mode 100644
index 95a046b..0000000
--- a/lib/Items/ItemQueue.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Items;
-
-class ItemQueue
-{
-
- private $type;
-
- private $userId;
-
- private $fileId;
-
- private $path;
-
- private $folder = false;
-
- public function __construct($type = '', $more = array())
- {
- $this->type = $type;
-
- if (is_array($more)) {
- if (key_exists('userid', $more))
- $this->setUserId($more['userid']);
- if (key_exists('fileid', $more))
- $this->setFileId($more['fileid']);
- if (key_exists('path', $more))
- $this->setPath($more['path']);
- if (key_exists('folder', $more))
- $this->setFolder($more['folder']);
- }
-
- if (is_object($more)) {
- if (isset($more->userid))
- $this->setUserId($more->userid);
- if (isset($more->fileid))
- $this->setFileId($more->fileid);
- if (isset($more->path))
- $this->setPath($more->path);
- if (isset($more->folder))
- $this->setFolder($more->folder);
- }
- }
-
- public function setType($type)
- {
- $this->type = $type;
- }
-
- public function getType()
- {
- return $this->type;
- }
-
- public function setUserId($userId)
- {
- $this->userId = $userId;
- }
-
- public function getUserId()
- {
- return $this->userId;
- }
-
- public function setFileId($fileId)
- {
- $this->fileId = $fileId;
- }
-
- public function getFileId()
- {
- return $this->fileId;
- }
-
- public function setPath($path)
- {
- $this->path = $path;
- }
-
- public function getPath()
- {
- return $this->path;
- }
-
- public function setFolder($folder)
- {
- $this->folder = $folder;
- }
-
- public function getFolder()
- {
- return $this->folder;
- }
-
- public static function toJson($item)
- {
- if ($item === null)
- return null;
-
- return json_encode(array(
- 'type' => $item->getType(),
- 'userid' => $item->getUserId(),
- 'fileid' => $item->getFileId(),
- 'path' => $item->getPath(),
- 'folder' => $item->getFolder()
- ));
- }
-
- public static function fromJson($json)
- {
- $data = json_decode($json);
-
- if ($data == null)
- return false;
-
- $item = new ItemQueue($data->type, $data);
- return $item;
- }
-}
-
-
diff --git a/lib/Migration/NextantUpgrade.php b/lib/Migration/NextantUpgrade.php
deleted file mode 100644
index 44bc2e3..0000000
--- a/lib/Migration/NextantUpgrade.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Migration;
-
-use OCP\Migration\IOutput;
-use OCP\Migration\IRepairStep;
-
-class NextantUpgrade implements IRepairStep
-{
-
- private $solrService;
-
- private $solrAdmin;
-
- private $configService;
-
- public function __construct($configService, $solrService, $solrAdmin)
- {
- $this->solrService = $solrService;
- $this->solrAdmin = $solrAdmin;
- $this->configService = $configService;
- }
-
- /**
- * Returns the step's name
- *
- * @return string
- * @since 9.1.0
- */
- public function getName()
- {
- return 'Check and update Solr schema';
- }
-
- /**
- */
- public function run(IOutput $output)
- {
- $this->solrAdmin->checkSchema(true, $ierror);
- $this->solrAdmin->checkSchema(true, $ierror);
- $this->solrAdmin->checkSchema(true, $ierror);
- $this->configService->removeOldConfig();
- // $this->configService->stopUpdate();
- }
-} \ No newline at end of file
diff --git a/lib/Service/BackgroundService.php b/lib/Service/BackgroundService.php
deleted file mode 100644
index 9110255..0000000
--- a/lib/Service/BackgroundService.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Items\ItemDocument;
-
-class BackgroundService
-{
-
- private $userManager;
-
- private $rootFolder;
-
- private $configService;
-
- private $solrService;
-
- private $solrToolsService;
-
- private $solrAdminService;
-
- private $sourceService;
-
- private $indexService;
-
- private $queueService;
-
- private $miscService;
-
- public function __construct($userManager, $rootFolder, $configService, $solrService, $solrToolsService, $solrAdminService, $sourceService, $indexService, $queueService, $miscService)
- {
- $this->miscService = $miscService;
- $this->userManager = $userManager;
- $this->configService = $configService;
- $this->solrService = $solrService;
- $this->solrTools = $solrToolsService;
- $this->solrAdmin = $solrAdminService;
- $this->sourceService = $sourceService;
- $this->indexService = $indexService;
- $this->queueService = $queueService;
- $this->rootFolder = $rootFolder;
- }
-
- public function run()
- {
- if (! $this->solrService->configured(false))
- return;
-
- if (! $this->solrAdmin->ping())
- return;
-
- if ($this->configService->isLockedIndex())
- return;
-
- $this->indexService->lockActive(true);
- $this->configService->lockIndex(true);
-
- $this->liveIndex();
- $this->cronIndex();
-
- $this->configService->lockIndex(false);
-
- return;
- }
-
- public function setDebug($debug)
- {
- $this->miscService->setDebug($debug);
- $this->sourceService->file()->setDebug($debug);
- }
-
- private function liveIndex()
- {
- if ($this->configService->getAppValue('index_live') === '0')
- return;
-
- while (($item = $this->queueService->readQueue()) !== false) {
- $this->queueService->executeItem($item);
- }
- }
-
- private function cronIndex()
- {
- if (($this->configService->timeIndexDelay('index_live') !== '1' && $this->configService->timeIndexDelay('files') && $this->configService->neededIndexFiles()) || $this->configService->timeIndexDelay('files', 24 * $this->configService->getAppValue('index_delay_max'))) {
- $this->configService->needIndexFiles(false);
- $this->cronIndexFiles();
- $this->cronUpdateFiles();
- $this->configService->timeIndex('files');
- }
-
- if (($this->configService->timeIndexDelay('index_live') !== '1' && $this->configService->timeIndexDelay('bookmarks') && $this->configService->neededIndexBookmarks()) || $this->configService->timeIndexDelay('bookmarks', 24 * $this->configService->getAppValue('index_delay_max'))) {
- $this->configService->needIndexBookmarks(false);
- $this->cronIndexBookmarks();
- $this->configService->timeIndex('bookmarks');
- }
- }
-
- private function cronIndexFiles()
- {
- if (! $this->sourceService->file()->configured())
- return;
-
- $users = $this->userManager->search('');
-
- foreach ($users as $user) {
-
- $this->sourceService->file()->initUser($user->getUID(), true);
- $files = $this->sourceService->file()->getFilesPerUserId('/files', array());
-
- if ($this->configService->getAppValue('index_files_trash') === '1') {
- $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array(
- 'deleted'
- ));
- $files = array_merge($files, $files_trashbin);
- }
- $solrDocs = null;
- $this->indexService->extract(ItemDocument::TYPE_FILE, $user->getUID(), $files, $solrDocs);
- $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $user->getUID(), $files, $solrDocs);
-
- $this->sourceService->file()->endUser();
- }
- }
-
- private function cronUpdateFiles()
- {
- if (! $this->sourceService->file()->configured())
- return;
-
- $users = $this->userManager->search('');
- foreach ($users as $user) {
-
- $this->sourceService->file()->initUser($user->getUID(), true);
- $files = $this->sourceService->file()->getFilesPerUserId('/files', array());
-
- if ($this->configService->getAppValue('index_files_trash') === '1') {
- $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array(
- 'deleted'
- ));
- $files = array_merge($files, $files_trashbin);
- }
-
- $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $user->getUID(), $files);
-
- $this->sourceService->file()->endUser();
- }
- }
-
- private function cronIndexBookmarks()
- {
- if (! $this->sourceService->bookmark()->configured())
- return;
-
- $users = $this->userManager->search('');
- foreach ($users as $user) {
- $bm = $this->sourceService->bookmark()->getBookmarksPerUserId($user->getUID());
-
- $solrDocs = null;
- $this->indexService->extract(ItemDocument::TYPE_BOOKMARK, $user->getUID(), $bm, $solrDocs);
- $this->indexService->removeOrphans(ItemDocument::TYPE_BOOKMARK, $user->getUID(), $bm, $solrDocs);
- }
- }
-} \ No newline at end of file
diff --git a/lib/Service/BookmarkService.php b/lib/Service/BookmarkService.php
deleted file mode 100644
index 7bc4807..0000000
--- a/lib/Service/BookmarkService.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Items\ItemDocument;
-use OCA\Bookmarks\Controller\Lib\Bookmarks;
-
-class BookmarkService
-{
-
- private $configService;
-
- // private $solrService;
-
- // private $solrTools;
- private $miscService;
-
- private $libBookmarks = null;
-
- public function __construct($configService, $miscService)
- {
- $this->configService = $configService;
- $this->miscService = $miscService;
- }
-
- public function configured()
- {
- if (! \OCP\App::isEnabled('bookmarks'))
- return false;
-
- if ($this->configService->getAppValue('index_bookmarks') === '1')
- return true;
-
- return false;
- }
-
- public function syncDocument(&$item)
- {
- $item->synced(true);
- $item->extractable(true);
- $item->valid(true);
-
- return true;
- }
-
- /**
- * get bookmarks from a specific user
- *
- * @param number $userId
- * @return array
- */
- public function getBookmarksPerUserId($userId)
- {
- if (! $this->configured())
- return false;
-
- // if ($this->configService->getCloudVersion() >= 11) {
- if ($this->libBookmarks == null) {
- $bookmarkApp = new \OCA\Bookmarks\AppInfo\Application();
- $this->libBookmarks = $bookmarkApp->getContainer()->query(\OCA\Bookmarks\Controller\Lib\Bookmarks::class);
- }
-
- $bookmarks = $this->libBookmarks->findBookmarks($userId, 0, 'id', array(), false, - 1);
- // } else {
- // $db = \OC::$server->getDb();
- // $bookmarks = Bookmarks::findBookmarks($userId, $db, 0, 'id', array(), false, - 1);
- // }
-
- $data = array();
- foreach ($bookmarks as $bookmark) {
- $item = new ItemDocument(ItemDocument::TYPE_BOOKMARK, $bookmark['id']);
- $item->setMTime($bookmark['lastmodified']);
- $item->setAbsolutePath($bookmark['url']);
- $item->setPath($bookmark['url']);
- $data[] = $item;
- }
-
- return $data;
- }
-
- public static function getSearchResult(&$data)
- {
- $entry = array(
- 'id' => $data->getId(),
- 'mtime' => $data->getMTime() * 1000,
- 'name' => $data->getPath(),
- 'permissions' => 27,
- 'type' => 'bookmark'
- );
- // 'mimetype' => 'text/html',
-
- $data->setEntry($entry);
- $data->valid(true);
-
- return true;
- }
-} \ No newline at end of file
diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php
deleted file mode 100644
index 9049088..0000000
--- a/lib/Service/ConfigService.php
+++ /dev/null
@@ -1,302 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Controller\SettingsController;
-use OCP\IConfig;
-
-class ConfigService
-{
-
- const SEARCH_DISPLAY_NEXTANT = 1;
-
- const SEARCH_DISPLAY_FILES = 2;
-
- const RESOURCE_LEVEL_LOWER = '1';
-
- const RESOURCE_LEVEL_LOW = '2';
-
- const RESOURCE_LEVEL_MID = '3';
-
- const RESOURCE_LEVEL_HIGH = '4';
-
- const RESOURCE_LEVEL_HIGHER = '5';
-
- private $defaults = [
- 'configured' => '0',
- 'solr_url' => 'http://127.0.0.1:8983/solr/',
- 'solr_core' => 'nextant',
- 'solr_timeout' => '30',
-
- 'resource_level' => '4',
- 'index_live' => '2',
- 'index_live_queuekey' => '19375',
- 'index_delay' => '2',
- 'index_delay_min' => '2',
- 'index_delay_max' => '4',
- 'use_cron' => '1',
- 'index_locked' => '0',
- 'index_files_last' => '0',
- 'index_bookmarks_last' => '0',
-
- 'index_files' => '1',
- 'index_files_needed' => '1',
- 'index_files_update_needed' => '1',
- 'index_files_tree' => '0',
- 'index_files_nextant_only' => '0',
- 'index_files_trash' => '1',
- 'index_files_sharelink' => '0',
- 'index_files_federated' => '0',
- 'index_files_external' => '0',
- 'index_files_encrypted' => '0',
- 'index_files_max_size' => '40',
- 'index_files_filters_text' => '1',
- 'index_files_filters_pdf' => '1',
- 'index_files_filters_office' => '1',
- 'index_files_filters_image' => '0',
- 'index_files_filters_audio' => '0',
- 'index_files_filters_extensions' => '.csv',
-
- 'index_bookmarks' => 0,
- 'index_bookmarks_needed' => 1
- ];
-
- private $appName;
-
- private $config;
-
- private $miscService;
-
- private $fileFilters = null;
-
- public function __construct($appName, IConfig $config, $miscService)
- {
- $this->appName = $appName;
- $this->config = $config;
- $this->miscService = $miscService;
- }
-
- public function reset()
- {
- foreach ($this->defaults as $k => $v) {
- $this->setAppValue($k, $v);
- }
- }
-
- public function removeOldConfig()
- {
- if ($this->getAppValue('index_live') === '1')
- $this->setAppValue('index_live', '2');
- // $this->setAppValue('index_delay_min', $this->getAppValue('index_delay'));
- }
-
- public function needIndexFiles($need)
- {
- if ($need)
- $this->setAppValue('index_files_needed', '1');
- else
- $this->setAppValue('index_files_needed', '0');
- }
-
- public function neededIndexFiles()
- {
- return ($this->getAppValue('index_files_needed') == '1');
- }
-
- public function needIndexBookmarks($need)
- {
- if ($need)
- $this->setAppValue('index_bookmarks_needed', '1');
- else
- $this->setAppValue('index_bookmarks_needed', '0');
- }
-
- public function neededIndexBookmarks()
- {
- return ($this->getAppValue('index_bookmarks_needed') == '1');
- }
-
- public function stopIndex()
- {
- $this->setAppValue('configured', '2');
- }
-
- public function timeIndex($type)
- {
- $this->setAppValue('index_' . $type . '_last', time());
- }
-
- public function timeIndexDelay($type, $delay = 0)
- {
- if ($delay == 0)
- $delay = $this->getAppValue('index_delay_min');
-
- // Uncomment this line to force index each tick of backgroundjob
- // $delay = 0;
- return ($this->getAppValue('index_' . $type . '_last') < (time() - (3600 * $delay)));
- }
-
- public function lockIndex($lock)
- {
- if ($lock)
- $this->setAppValue('index_locked', time());
- else
- $this->setAppValue('index_locked', '0');
- }
-
- /**
- * returns false if index is not locked or number of seconds since last tick
- * after 10 minutes, lock is reseted
- *
- * @return boolean|number
- */
- public function isLockedIndex(&$delay = 0)
- {
- $lock = $this->getAppValue('index_locked');
- if ($lock === '0')
- return false;
-
- $delay = time() - $lock;
- if ($delay > 600)
- $this->lockIndex(false);
- else
- return true;
-
- return false;
- }
-
- /**
- * returns the current resource level.
- *
- * @return number
- */
- public function resourceLevel()
- {
- return $this->getAppValue('resource_level');
- }
-
- /**
- * Get a value by key
- *
- * @param string $key
- * @return string
- */
- public function getAppValue($key)
- {
- $defaultValue = null;
- if (array_key_exists($key, $this->defaults))
- $defaultValue = $this->defaults[$key];
- return $this->config->getAppValue($this->appName, $key, $defaultValue);
- }
-
- /**
- * Set a value by key
- *
- * @param string $key
- * @param string $value
- * @return string
- */
- public function setAppValue($key, $value)
- {
- return $this->config->setAppValue($this->appName, $key, $value);
- }
-
- /**
- * remove a key
- *
- * @param string $key
- * @return string
- */
- public function deleteAppValue($key)
- {
- return $this->config->deleteAppValue($this->appName, $key);
- }
-
- public function getFileFilters()
- {
- if ($this->fileFilters == null)
- $this->fileFilters = array(
- 'text' => $this->getAppValue('index_files_filters_text'),
- 'pdf' => $this->getAppValue('index_files_filters_pdf'),
- 'office' => $this->getAppValue('index_files_filters_office'),
- 'image' => $this->getAppValue('index_files_filters_image'),
- 'audio' => $this->getAppValue('index_files_filters_audio'),
- 'extensions' => SettingsController::FileFiltersExtensionsAsArray($this->getAppValue('index_files_filters_extensions'))
- );
-
- return $this->fileFilters;
- }
-
- public function getCloudVersion($complete = false)
- {
- $ver = \OCP\Util::getVersion();
-
- if ($complete)
- return implode('.', $ver);
-
- return $ver[0];
- }
-
- /**
- * generate an array to pass config to Solarium
- *
- * @return array
- */
- public function toSolarium($config = null)
- {
- if ($config == null)
- $config = array();
-
- if (! key_exists('solr_url', $config))
- $config['solr_url'] = $this->getAppValue('solr_url');
-
- if (! key_exists('solr_core', $config))
- $config['solr_core'] = $this->getAppValue('solr_core');
-
- if (! key_exists('timeout', $config))
- $config['timeout'] = $this->getAppValue('solr_timeout');
-
- $url = $config['solr_url'];
- $t = parse_url($url);
-
- if (! key_exists('host', $t) || ! key_exists('port', $t) || ! key_exists('path', $t))
- return false;
-
- return array(
- 'endpoint' => array(
- 'localhost' => array(
- 'timeout' => ($config['timeout'] < 5) ? 5 : $config['timeout'],
- 'scheme' => $t['scheme'],
- 'host' => $t['host'],
- 'port' => $t['port'],
- 'core' => $config['solr_core'],
- 'path' => str_replace('//', '/', $t['path'])
- )
- )
- );
- }
-}
diff --git a/lib/Service/FileService.php b/lib/Service/FileService.php
deleted file mode 100644
index 25c67ac..0000000
--- a/lib/Service/FileService.php
+++ /dev/null
@@ -1,728 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\SolrToolsService;
-use \OCA\Nextant\Items\ItemError;
-use \OCA\Nextant\Items\ItemDocument;
-use OC\Files\Filesystem;
-use OC\Files\View;
-use OC\Share\Share;
-use OCP\Files\NotFoundException;
-use OCP\Files\StorageNotAvailableException;
-
-class FileService
-{
-
- const UPDATE_MAXIMUM_FILES = 1000;
-
- const NOINDEX_FILE = '.noindex';
-
- // private $root;
- private $configService;
-
- private $rootFolder;
-
- private $solrService;
-
- private $solrTools;
-
- private $miscService;
-
- private $view;
-
- private $userId;
-
- private $externalMountPoint;
-
- public function __construct($configService, $rootFolder, $solrService, $solrTools, $miscService)
- {
- // $this->root = $root;
- $this->configService = $configService;
- $this->rootFolder = $rootFolder;
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->miscService = $miscService;
- }
-
- public function setDebug($debug)
- {
- $this->miscService->setDebug($debug);
- $this->solrService->setDebug($debug);
- $this->solrTools->setDebug($debug);
- }
-
- public function configured()
- {
- if (! \OCP\App::isEnabled('files'))
- return false;
-
- if ($this->configService->getAppValue('index_files') == 1)
- return true;
-
- return false;
- }
-
- public static function getId($path)
- {
- $fileId = 0;
- $info = Filesystem::getFileInfo($path);
- if ($info !== false)
- $fileId = (int) $info['fileid'];
-
- return $fileId;
- }
-
- public static function getFileInfo($pathorid)
- {
- try {
- $view = Filesystem::getView();
- if (intval($pathorid) != 0)
- $path = $view->getPath($pathorid);
- else
- $path = $pathorid;
-
- return $view->getFileInfo($path);
- } catch (NotFoundException $e) {
- return false;
- }
- }
-
- public static function getUserFolder($rootFolder, $userId, $path)
- {
- \OC\Files\Filesystem::initMountPoints($userId);
- $dir = '/' . $userId;
- $folder = null;
-
- try {
- return $rootFolder->get($dir)->get($path);
- } catch (NotFoundException $e) {}
-
- return false;
- }
-
- public static function getBaseTypeFromMime($mimetype)
- {
- return substr($mimetype, 0, strpos($mimetype, '/'));
- }
-
- public function initUser($userId, $complete = false)
- {
- $this->userId = $userId;
- Filesystem::init($this->userId, '');
- $this->view = Filesystem::getView();
-
- if ($complete)
- $this->initUserExternalMountPoints();
- }
-
- public function endUser()
- {
- $this->view = null;
- $this->userId = '';
- // $this->externalMountPoint = array();
- }
-
- private function initUserExternalMountPoints()
- {
- if ($this->configService->getAppValue('index_files_external') !== '1')
- return false;
-
- if (! \OCP\App::isEnabled('files_external'))
- return false;
-
- $data = array();
- $mounts = \OC_Mount_Config::getAbsoluteMountPoints($this->userId);
- foreach ($mounts as $mountPoint => $mount) {
- $data[] = array(
- 'id' => $mount['id'],
- 'path' => $mountPoint,
- 'shares' => $mount['applicable'],
- 'personal' => $mount['personal']
- );
- }
-
- $this->externalMountPoint = $data;
- }
-
- /**
- * add some information to the itemDocument
- *
- * @param ItemDocument $item
- * @return boolean
- */
- public function syncDocument(&$item)
- {
- $item->synced(true);
-
- // $this->miscService->log('-- local: ' . (($item->istorageLocal()
- // ) ? 'y' : 'n') . ' -- external: ' . (($item->isExternal()) ? 'y' : 'n') . ' -- encrypted:' . (($item->isEncrypted()) ? 'y' : 'n') . ' -- test: ' . (($item->isTest()) ? 'y' : 'n') . ' -- ' . $item->getPath());
-
- if ($item->isFederated() && $this->configService->getAppValue('index_files_federated') !== '1')
- return false;
-
- if ($item->isExternal() && $this->configService->getAppValue('index_files_external') !== '1')
- return false;
-
- if ($item->isEncrypted() && $this->configService->getAppValue('index_files_encrypted') !== '1')
- return false;
-
- $size = round($item->getSize() / 1024 / 1024, 1);
- if ($size > $this->configService->getAppValue('index_files_max_size')) {
- $this->miscService->debug('File is too big (' . $size . ' > ' . $this->configService->getAppValue('index_files_max_size') . ')');
- return false;
- }
-
- // $this->miscService->log('__' . $item->getPath() . ' __ ' . $item->getId() . ' ___ ' . $item->getMimeType());
- if (! $this->solrService->extractableFile($item->getMimeType(), $item->getPath())) {
- $item->extractable(false);
-
- if ($this->configService->getAppValue('index_files_tree') === '1')
- $item->valid(true);
- } else {
- $item->valid(true);
- $item->extractable(true);
- }
-
- $this->dataRetrievalFromPath($item);
-
- if ($item->isDeleted()) {
- $item->setShare();
- $item->setShareGroup();
- }
-
- return true;
- }
-
- /**
- * generate a local file and set its path in the item/AbsolutePath
- *
- * @param ItemDocument $item
- */
- public function generateAbsolutePath(&$item, &$ierror = '')
- {
- if ($item->isStorageLocal()) {
- $item->setAbsolutePath($this->view->getLocalFile($item->getPath()));
- return true;
- }
-
- // not local, not external nor encrypted, we generate temp file
- if (! $item->isExternal() && ! $item->isEncrypted()) {
- $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true);
- return true;
- }
-
- // not local, not external nor encrypted, we generate temp file
- if (! $item->isExternal() && ! $item->isEncrypted()) {
- try {
- $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true);
- } catch (StorageNotAvailableException $ex) {
- $ierror = new ItemError(ItemError::EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH, $ex->getHint());
- return false;
- }
- return true;
- }
-
-
- // We generate a local tmp file from the remote one
- if ($item->isExternal() && $this->configService->getAppValue('index_files_external') === '1') {
- try {
- $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true);
- } catch (\OC\Encryption\Exceptions\DecryptionFailedException $dfe) {
- $ierror = new ItemError(ItemError::EXCEPTION_DECRYPTION_FAILED, $dfe->getHint());
- return false;
- } catch (\OC\Encryption\Exceptions\ModuleDoesNotExistsException $mod) {
- $ierror = new ItemError(ItemError::EXCEPTION_ENCRYPT_NO_MODULE, $mod->getHint());
- return false;
- }
-
- return true;
- }
-
- // We generate a local tmp file from the federated
- if ($item->isFederated() && $this->configService->getAppValue('index_files_federated') === '1') {
- $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true);
- return true;
- }
-
- // encrypted file = local tmp file
- if ($item->isEncrypted() && $this->configService->getAppValue('index_files_encrypted') === '1') {
- try {
- $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true);
- } catch (\OC\Encryption\Exceptions\DecryptionFailedException $dfe) {
- $ierror = new ItemError(ItemError::EXCEPTION_DECRYPTION_FAILED, $dfe->getHint());
- $ierror->link(ItemError::LINK_EXCEPTION_DECRYPTION_FAILED);
- return false;
- } catch (\OCA\Encryption\Exceptions\PrivateKeyMissingException $pkme) {
- $ierror = new ItemError(ItemError::EXCEPTION_DECRYPT_PRIVATEKEY_MISSING, $pkme->getHint());
- $ierror->link(ItemError::LINK_EXCEPTION_DECRYPT_PRIVATEKEY_MISSING);
- return false;
- }
-
- return true;
- }
- }
-
- /**
- * destroy local temp file
- *
- * @param unknown $item
- */
- public function destroyTempDocument(&$item)
- {
- if ($item->getAbsolutePath() != null && $item->isTemp())
- unlink($item->getAbsolutePath());
- }
-
- /**
- * convert FileInfo to ItemDocument
- *
- * @param FileInfo $file
- * @return boolean|\OCA\Nextant\Items\ItemDocument
- */
- public function getDocumentFromFile($file)
- {
- if ($file == null)
- return false;
-
- $item = new ItemDocument(ItemDocument::TYPE_FILE, $file->getId());
- $item->setOwner($this->userId);
- $item->setMTime($file->getMTime());
- $item->setMimetype($file->getMimeType());
- $item->setPath(str_replace('//', '/', $file->getPath()));
- $item->setSize($file->getSize());
- $item->storageLocal((($file->getStorage()
- ->isLocal()) ? true : false));
-
- if ($file->isEncrypted())
- $item->encrypted(true);
-
- if ($file->isMounted())
- $item->external(true);
- else {
-
- // not clean - but only way I found to check if not mounted IS federated ?
- if (method_exists($file->getMountPoint(), 'moveMount') && method_exists($file->getMountPoint(), 'removeMount'))
- $item->federated(true);
- }
-
- return $item;
- }
-
- /**
- * get files from a specific user
- *
- * @param number $userId
- * @return array
- */
- public function getFilesPerUserId($dir, $options)
- {
- if (! $this->configured())
- return false;
-
- if ($this->userId === '')
- return false;
-
- $data = array();
-
- // Filesystem::tearDown();
-
- $userFolder = FileService::getUserFolder($this->rootFolder, $this->userId, $dir);
- if (! $userFolder || $userFolder == null)
- return $data;
-
- $folder = $userFolder->get('/');
- $files = $folder->search('%');
-
- foreach ($files as $file) {
- if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER && $this->configService->getAppValue('index_files_tree') !== '1')
- continue;
-
- if ($file->isShared() && $file->getStorage()->isLocal() && ! in_array('forceshared', $options))
- continue;
-
- $item = $this->getDocumentFromFile($file);
- $item->deleted(in_array('deleted', $options));
-
- if ($item && $item != false && $item != null)
- $data[$item->getType() . '_' . $item->getId()] = $item;
- }
-
- return $data;
- }
-
- /**
- * get files from a userid+fileid
- *
- * @param number $userId
- * @param number $fileId
- * @param array $options
- * @return array
- */
- public function getFilesPerFileId($fileId, $options)
- {
- if (! $this->configured())
- return false;
-
- if ($this->userId === '')
- return false;
-
- if ($fileId == '')
- return false;
-
- $view = Filesystem::getView();
-
- $data = array();
- $file = self::getFileInfoFromFileId($fileId, $view, $this->miscService);
-
- if ($file == null && $this->configService->getAppValue('index_files_trash') === '1') {
- $trashview = new View('/' . $this->userId . '/files_trashbin/files');
- $file = self::getFileInfoFromFileId($fileId, $trashview, $this->miscService);
- array_push($options, 'deleted');
- }
-
- if ($file == null)
- return false;
-
- if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER) {
- $result = $this->getFilesPerPath($file->getPath(), $options);
- if (is_array($result) && sizeof($result) > 0)
- $data = array_merge($data, $result);
-
- return $data;
- }
-
- if ($file->isShared() && ! in_array('forceshared', $options))
- return $data;
-
- $item = $this->getDocumentFromFile($file);
- $item->deleted(in_array('deleted', $options));
-
- $data[$item->getType() . '_' . $item->getId()] = $item;
-
- return $data;
- }
-
- /**
- * get files/subdir from a userid+fileid
- *
- * @param number $userId
- * @param number $fileId
- * @param array $options
- * @return array
- */
- private function getFilesPerPath($path, $options)
- {
- if (! $this->configured())
- return false;
-
- if ($this->userId === '')
- return false;
-
- // Filesystem::tearDown();
- $view = Filesystem::getView();
-
- $data = array();
- $file = $view->getFileInfo($path);
- if ($file == false | $file == null)
- return false;
-
- if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER) {
-
- $subfiles = $view->getDirectoryContent($file->getPath());
- foreach ($subfiles as $subfile) {
- $result = $this->getFilesPerPath($subfile->getPath(), $options);
- if (is_array($result) && sizeof($result) > 0)
- $data = array_merge($data, $result);
- }
- return $data;
- }
-
- if ($file->isShared() && ! in_array('forceshared', $options))
- return $data;
-
- $item = $this->getDocumentFromFile($file);
- $item->deleted(in_array('deleted', $options));
-
- $data[$item->getType() . '_' . $item->getId()] = $item;
-
- return $data;
- }
-
- /**
- * update ItemDocument based on its filepath (sharing rights, noindex status, ..)
- *
- * @param ItemDocument $entry
- * @return boolean
- */
- private function dataRetrievalFromPath(&$entry)
- {
- $data = array();
-
- $subpath = '';
- $subdirs = explode('/', $entry->getPath());
- foreach ($subdirs as $subdir) {
-
- if ($subdir == '')
- continue;
-
- $subpath .= '/' . $subdir;
- if (strlen($subpath) > 0 && $subpath != '/') {
-
- self::getShareRightsFromExternalMountPoint($this->externalMountPoint, $subpath, $data, $entry);
- // self::getIndexStatusFromExternalMountPoint($this->externalMountPoint, $subpath, $data, $entry);
-
- $subdirInfos = self::getFileInfoFromPath($subpath);
- if (! $subdirInfos)
- continue;
-
- self::getShareRightsFromFileId($subdirInfos->getId(), $data);
- self::getIndexStatusFromFileInfo($this->view, $subdirInfos, $data);
- }
- }
-
- if (key_exists('noindex', $data))
- $entry->noIndex($data['noindex']);
- if (key_exists('share_users', $data))
- $entry->setShare($data['share_users']);
- if (key_exists('share_groups', $data))
- $entry->setShareGroup($data['share_groups']);
-
- return true;
- }
-
- private static function getShareRightsFromExternalMountPoint($mountPoints, $path, &$data, &$entry)
- {
- if (! $entry->isExternal())
- return false;
-
- if (! key_exists('share_users', $data))
- $data['share_users'] = array();
- if (! key_exists('share_groups', $data))
- $data['share_groups'] = array();
-
- $edited = false;
- foreach ($mountPoints as $mount) {
- if ($mount['path'] !== $path)
- continue;
-
- $edited = true;
- if (! $mount['personal']) {
- $entry->setOwner('__global');
- if (sizeof($mount['shares']['users']) == 1 && sizeof($mount['shares']['groups']) == 0 && $mount['shares']['users'][0] == 'all' && (! in_array('__all', $data['share_groups']))) {
- array_push($data['share_groups'], '__all');
- continue;
- }
- }
-
- foreach ($mount['shares']['users'] as $share_user) {
- if ($share_user != $entry->getOwner() && ! in_array($share_user, $data['share_users']))
- array_push($data['share_users'], $share_user);
- }
-
- foreach ($mount['shares']['groups'] as $share_group) {
- if (! in_array($share_group, $data['share_groups']))
- array_push($data['share_groups'], $share_group);
- }
- }
-
- return $edited;
- }
-
- /**
- * update ItemDocument share rights from a specific fileid / subfolder
- *
- * @param number $fileId
- * @param ItemDocument $data
- * @return boolean
- */
- private static function getShareRightsFromFileId($fileId, &$data)
- {
- if (! key_exists('share_users', $data))
- $data['share_users'] = array();
- if (! key_exists('share_groups', $data))
- $data['share_groups'] = array();
- if (! key_exists('deleted', $data))
- $data['deleted'] = false;
-
- $OCShares = Share::getAllSharesForFileId($fileId);
- foreach ($OCShares as $share) {
- if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_USER && ! in_array($share['share_with'], $data['share_users']))
- array_push($data['share_users'], $share['share_with']);
- if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_GROUP && ! in_array($share['share_with'], $data['share_groups']))
- array_push($data['share_groups'], $share['share_with']);
- if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_LINK && ! in_array('__link_' . $share['id'], $data['share_users']))
- array_push($data['share_users'], '__link_' . $share['id']);
- }
-
- return true;
- }
-
- /**
- * update ItemDocument index status based on path
- *
- * @param number $fileId
- * @param ItemDocument $data
- * @return boolean
- */
- private static function getIndexStatusFromFileInfo($view, $fileInfo, &$data)
- {
- if (! key_exists('noindex', $data))
- $data['noindex'] = false;
-
- if ($data['noindex'] === true)
- return true;
-
- if ($fileInfo->getType() != \OCP\Files\FileInfo::TYPE_FOLDER)
- return false;
-
- $files = $view->getDirectoryContent($fileInfo->getPath());
-
- foreach ($files as $file) {
- if ($file->getName() === self::NOINDEX_FILE) {
- $data['noindex'] = true;
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * complete data from a search result with more details about the file itself
- *
- * @param array $data
- * @param string $base
- * @param boolean $trashbin
- * @return array[]
- */
- public function getSearchResult(&$item, $base = '', $trashbin = true)
- {
- if ($this->view === null || $this->userId === '')
- return false;
-
- $path = '';
- $fileData = null;
- try {
- $path = $this->view->getPath($item->getId());
- $fileData = $this->view->getFileInfo($path);
- } catch (NotFoundException $e) {
- $fileData = null;
- }
-
- if ($this->configService->getAppValue('index_files_trash') === '1' && $fileData == null && $trashbin) {
- try {
- $trashview = new View('/' . $this->userId . '/files_trashbin/files');
- $path = $trashview->getPath($item->getId());
- $fileData = $trashview->getFileInfo($path);
- $item->deleted(true);
- } catch (NotFoundException $e) {
- return false;
- }
- }
-
- if ($fileData == null || $fileData === false)
- return false;
-
- $pathParts = pathinfo($path);
- $basepath = str_replace('//', '/', '/' . $pathParts['dirname'] . '/');
-
- if (substr($path, - 1) == '/')
- $path = substr($path, 0, - 1);
-
- $dirpath = $pathParts['dirname'];
-
- if ($base !== '') {
- $path = substr($path, strpos($path, $base) + strlen($base));
- $dirpath = substr($dirpath, strpos($dirpath, $base) + strlen($base));
- }
-
- if ($dirpath === '')
- $dirpath = '/';
-
- // fileinfo entry
- $entry = \OCA\Files\Helper::formatFileInfo($fileData);
- $entry['dirpath'] = $dirpath;
- $entry['filename'] = $pathParts['basename'];
- $entry['name'] = ((substr($path, 0, 1) === '/') ? substr($path, 1) : $path);
-
- if ($item->isSharedPublic())
- $entry['permissions'] = \OCP\Constants::PERMISSION_READ;
-
- $item->setEntry($entry);
-
- $item->setPath($path);
-
- $item->valid(true);
-
- return true;
- }
-
- /**
- * returns fileId from a path
- *
- * @param string $path
- * @param View $view
- * @return boolean|number
- */
- public static function getFileInfoFromPath($path, $view = null)
- {
- if ($view == null)
- $view = Filesystem::getView();
- if ($view == null)
- return null;
-
- try {
- return $view->getFileInfo($path);
- } catch (NotFoundException $e) {
- return false;
- }
- }
-
- public static function getFileInfoFromFileId($fileId, $view = null, $misc)
- {
- try {
- if ($view == null)
- $view = Filesystem::getView();
- if ($view == null)
- return null;
-
- $path = $view->getPath($fileId);
- if ($path == null)
- return null;
-
- $file = $view->getFileInfo($path);
- if ($file == null)
- return null;
-
- return $file;
- } catch (NotFoundException $e) {
- return null;
- }
- }
-}
diff --git a/lib/Service/IndexService.php b/lib/Service/IndexService.php
deleted file mode 100644
index 5fd9b73..0000000
--- a/lib/Service/IndexService.php
+++ /dev/null
@@ -1,937 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Bookmarks\Controller\Lib\Bookmarks;
-use \OCA\Nextant\Items\ItemDocument;
-use \OCA\Nextant\Items\ItemError;
-use Symfony\Component\Console\Helper\ProgressBar;
-
-class IndexService
-{
-
- const GETALL_ROWS = 100;
-
- const REFRESH_LOCK = 20;
-
- const REFRESH_COMMIT = 900;
-
- const PROGRESS_TEMPLATE = "%job:1s%%message:-40s%%current:6s%/%max:6s% [%bar%] %percent:3s%% \n %duration% %infos:-12s% %jvm:-30s% ";
-
- const PROGRESS_TEMPLATE_DEBUG = "\n %more%";
- // const PROGRESS_TEMPLATE_DEBUG = "";
- const REFRESH_INFO_SYSTEM = 20;
-
- private $groupManager;
-
- private $solrService;
-
- private $solrTools;
-
- private $solrAdmin;
-
- private $configService;
-
- private $sourceService;
-
- private $miscService;
-
- private $parent;
-
- private $output;
-
- private $lastProgressTick;
-
- private $lastCommitTick;
-
- private $lastAverageTick;
-
- private $lastAverageTickCount;
-
- private $lastAverageTickValue;
-
- private $lastCommitQueryTime = 0;
-
- private $debug = false;
-
- private $force = false;
-
- private $last_lock = 0;
-
- private $active_lock = false;
-
- private $initTime = 0;
-
- public function __construct($groupManager, $configService, $sourceService, $solrService, $solrTools, $solrAdmin, $miscService)
- {
- $this->groupManager = $groupManager;
-
- $this->configService = $configService;
- $this->sourceService = $sourceService;
-
- $this->solrService = $solrService;
- $this->solrTools = $solrTools;
- $this->solrAdmin = $solrAdmin;
-
- $this->miscService = $miscService;
-
- $this->parent = null;
- $this->output = null;
- }
-
- public function setForcing($force)
- {
- $this->force = $force;
- }
-
- public function setDebug($debug)
- {
- $this->debug = $debug;
- $this->miscService->setDebug($debug);
- }
-
- public function setParent($parent)
- {
- $this->parent = $parent;
- }
-
- public function setOutput($output)
- {
- $this->output = $output;
- }
-
- public function message($line)
- {
- if ($this->output != null)
- $this->output->writeln($line);
- }
-
- public function init()
- {
- $this->initTime = time();
- }
-
- public function getIndexDuration()
- {
- if ($this->initTime == 0)
- return - 1;
- return gmdate("H:i:s", (time() - $this->initTime));
- }
-
- public function lockActive($active)
- {
- $this->active_lock = $active;
- }
-
- public function lockIndex($lock)
- {
- if (! $this->active_lock)
- return;
-
- if ($lock && $this->last_lock > (time() - self::REFRESH_LOCK))
- return false;
-
- if ($lock)
- $this->last_lock = time();
- else
- $this->last_lock = 0;
-
- $this->configService->lockIndex($lock);
- }
-
- /**
- * Extract whatever is sent ($data)
- *
- * @param string $type
- * @param string $userId
- * @param array $data
- * @return array
- */
- public function extract($type, $userId, &$data, &$solrDocs, $extract = true, &$ierror = '')
- {
- $this->solrService->setOwner($userId);
- $ierror = new ItemError();
-
- if ($solrDocs === null)
- $solrDocs = $this->getDocuments($type, $userId, 0, $ierror);
- else
- if ($solrDocs === false && reset($data) && $sync = current($data))
- $solrDocs = $this->getDocuments($type, $userId, $sync->getId(), $ierror);
-
- $progress = null;
- if ($this->output !== null) {
- $progress = new ProgressBar($this->output, sizeof($data));
- $progress->clear();
- }
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $userId . '</info>');
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('/', 'job');
- $progress->setMessage('', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- $this->lastCommitTick = time();
- foreach ($data as $entry) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $this->lockIndex(true);
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $userId . '</info>/' . $entry->getType());
- $progress->setMessage('/', 'job');
- $progress->setMessage('[scanning]', 'infos');
-
- if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1)
- $progress->setMessage('(' . $dura . ')', 'duration');
-
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
- $progress->advance();
- }
-
- if ($entry->getType() == ItemDocument::TYPE_FILE)
- $this->sourceService->file()->syncDocument($entry);
- if ($entry->getType() == ItemDocument::TYPE_BOOKMARK)
- $this->sourceService->bookmark()->syncDocument($entry);
- if ($entry->getType() == ItemDocument::TYPE_TEST) {
- $entry->synced(true);
- $entry->valid(true);
- $entry->extractable(true);
- }
-
- if ($this->output != null && $this->debug == 2) {
- $this->output->writeln('');
- $this->output->writeln('### FILE ' . $entry->getPath());
- $this->output->writeln('_current: ' . var_export($entry->toArray(true), true));
- $this->output->writeln('_solr: ' . var_export(ItemDocument::getItem($solrDocs, $entry), true));
- }
-
- if ($entry->isNoIndex())
- continue;
-
- if (! $entry->isExtractable() && $this->configService->getAppValue('index_files_tree') !== '1')
- continue;
-
- if (! $extract)
- continue;
-
- if (! $entry->isValid())
- continue;
-
- if (! $this->force && $this->solrTools->isDocumentUpToDate($entry, ItemDocument::getItem($solrDocs, $entry)))
- continue;
-
- if ($this->output != null && $this->debug == 2)
- $this->output->writeln('- Extracting!');
-
- if ($progress != null) {
- $progress->setMessage('+', 'job');
- $progress->setMessage('[extracting]', 'infos');
- $progress->display();
- }
-
- $atick = $this->generateAverageTick();
- if ($progress != null && $atick > - 1)
- $progress->setMessage($atick . ' documents extracted in the last minute. ' . (($this->lastCommitQueryTime > 0) ? 'Last commit took ' . ($this->lastCommitQueryTime) . 'ms' : ''), 'more');
-
- if ($entry->getType() == ItemDocument::TYPE_FILE) {
- if (! $this->sourceService->file()->generateAbsolutePath($entry, $ierror)) {
- $this->manageFailure($ierror, $progress, 'Failed to find a descent path');
- if ($this->configService->getAppValue('index_files_tree') !== '1')
- continue;
- }
- }
-
- $this->solrService->indexDocument($entry, $ierror);
-
- if ($this->output != null && $this->debug == 2) {
- if ($ierror == null || $ierror === '')
- $ierror = new ItemError();
- $this->output->writeln('- Extracted: ' . (($entry->isFailedExtract()) ? 'n' : 'y') . ' ' . $ierror->getCode() . ' ' . $ierror->getMessage());
- }
-
- if ((time() - self::REFRESH_COMMIT) > $this->lastCommitTick) {
-
- if ($this->output != null && $this->debug == 2)
- $this->output->writeln('- Commiting!');
-
- if ($progress != null) {
- $progress->setMessage('@', 'job');
- $progress->setMessage('[commiting]', 'infos');
- $progress->display();
- }
-
- $commit = $this->solrTools->commit(false, $ierror);
- if (! $commit)
- $this->manageFailure($ierror, $progress, 'Failed to commit');
- else
- $this->lastCommitQueryTime = $commit->getQueryTime();
-
- $this->lastCommitTick = time();
- }
-
- // moving to FileService (cf. syncDocument)
- // fail at extract, let's try just index
- if ($entry->isFailedExtract()) {
- if ($this->configService->getAppValue('index_files_tree') === '1')
- $entry->valid(true);
-
- if (! $this->manageFailure($ierror, $progress, 'Failed to extract document #' . $entry->getId() . ' (' . $entry->getPath() . ')')) {
- $ierror = new ItemError(ItemError::ERROR_MANAGING_FAILURE, 'server down ?');
- return false;
- }
-
- if ($this->configService->getAppValue('index_files_tree') === '1') {
-
- $entry->extractable(false);
-
- if (! $this->force && $this->solrTools->isDocumentUpToDate($entry, ItemDocument::getItem($solrDocs, $entry)))
- continue;
-
- $this->solrService->indexDocument($entry, $ierror);
- }
- }
-
- if (! $entry->isFailedIndex())
- $entry->valid(true);
-
- if ($entry->getType() == ItemDocument::TYPE_FILE)
- $this->sourceService->file()->destroyTempDocument($entry);
- }
-
- $this->resetAverageTick();
-
- $commit = $this->solrTools->commit(false, $ierror);
- if (! $commit)
- return false;
- else
- $this->lastCommitQueryTime = $commit->getQueryTime();
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
-
- return true;
- }
-
- /**
- * update Documents (sharing rights, trash, ...)
- *
- * @param string $type
- * @param string $userId
- * @param ItemDocument[] $data
- * @param ItemDocument[] $solrDocs
- * @return boolean
- */
- public function updateDocuments($type, $userId, &$data, &$solrDocs = null, &$ierror = '')
- {
- $this->solrService->setOwner($userId);
-
- if (reset($data) && ($sync = current($data)) && ! $sync->isSynced())
- $this->extract($type, $userId, $data, $solrDocs, false);
-
- if ($solrDocs === null)
- $solrDocs = $this->getDocuments($type, $userId, 0, $ierror);
- else
- if ($solrDocs === false && reset($data) && $sync = current($data))
- $solrDocs = $this->getDocuments($type, $userId, $sync->getId(), $ierror);
-
- $progress = null;
- if ($this->output !== null) {
- $progress = new ProgressBar($this->output, sizeof($data));
- $progress->clear();
- }
-
- if ($progress !== null) {
- $progress->setMessage('<info>' . $userId . '</info>');
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('/', 'job');
- $progress->setMessage('[comparing]', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- foreach ($data as $entry) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $this->lockIndex(true);
-
- if ($progress !== null) {
- $progress->setMessage('<info>' . $userId . '</info>/' . $entry->getType());
-
- if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1)
- $progress->setMessage('(' . $dura . ')', 'duration');
-
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
-
- $progress->advance();
- }
-
- $current = ItemDocument::getItem($solrDocs, $entry);
- if ($current === null)
- continue;
-
- $continue = false;
-
- $this->solrTools->updateDocument($entry, $current, false, $ierror);
-
- if ($progress != null) {
- if ($entry->neededUpdate()) {
- $progress->setMessage('!', 'job');
- $progress->setMessage('[updating]', 'infos');
- } else {
- $progress->setMessage('/', 'job');
- $progress->setMessage('[comparing]', 'infos');
- }
- $progress->display();
- }
-
- if ($entry->neededUpdate()) {
-
- $atick = $this->generateAverageTick();
- if ($progress != null && $atick > - 1)
- $progress->setMessage($atick . ' documents extracted in the last minute. ' . (($this->lastCommitQueryTime > 0) ? 'Last commit took ' . $this->lastCommitQueryTime . 'ms' : ''), 'more');
-
- $this->solrTools->updateDocument($entry, $current, true, $ierror);
-
- if ($progress != null && (time() - self::REFRESH_COMMIT) > $this->lastCommitTick) {
- $progress->setMessage('@', 'job');
- $progress->setMessage('[commiting]', 'infos');
- $progress->display();
-
- $commit = $this->solrTools->commit(false, $ierror);
- if (! $commit)
- $this->manageFailure($ierror, $progress, 'Failed to commit');
- else
- $this->lastCommitQueryTime = $commit->getQueryTime();
-
- $this->lastCommitTick = time();
- }
-
- if ($entry->isFailedUpdate() && ! $this->manageFailure($ierror, $progress, 'Failed to update document #' . $entry->getId() . ' (' . $entry->getPath() . ')'))
- return false;
- }
- }
-
- $this->resetAverageTick();
-
- $commit = $this->solrTools->commit(false, $ierror);
- if (! $commit)
- return false;
- else
- $this->lastCommitQueryTime = $commit->getQueryTime();
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
-
- return true;
- }
-
- /**
- * remove documents
- *
- * @param string $type
- * @param ItemDocument[] $data
- * @return boolean
- */
- public function removeDocuments(&$data, &$ierror = '')
- {
- if (sizeof($data) == 0)
- return false;
-
- $progress = null;
- if ($this->output != null) {
- $progress = new ProgressBar($this->output, sizeof($data));
- $progress->clear();
- }
-
- if ($progress != null) {
- $progress->setMessage('-', 'job');
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('[removing]', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- $forceExtract = false;
- foreach ($data as $doc) {
- $this->lockIndex(true);
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $doc->getOwner() . '</info>/' . $doc->getType());
-
- if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1)
- $progress->setMessage('(' . $dura . ')', 'duration');
-
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
-
- $progress->advance();
- }
-
- $this->solrTools->removeDocument($doc);
- }
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
-
- if (! $this->solrTools->commit(false, $ierror))
- return false;
-
- return true;
- }
-
- /**
- * remove documents with no more file associated.
- *
- * @param string $type
- * @param string $userId
- * @param ItemDocument[] $data
- * @param ItemDocument[] $solrDocs
- */
- public function removeOrphans($type, $userId, &$data, &$solrDocs)
- {
- $this->solrService->setOwner($userId);
- if (reset($data) && ($sync = current($data)) && ! $sync->isSynced())
- $this->extract($type, $userId, $data, $solrDocs, false);
-
- if ($solrDocs == null || $solrDocs == '' || ! is_array($solrDocs))
- $solrDocs = $this->getDocuments($type, $userId, 0, $ierror);
-
- if (! is_array($solrDocs))
- return false;
-
- $progress = null;
- if ($this->output != null) {
- $progress = new ProgressBar($this->output, sizeof($data));
- $progress->clear();
- }
-
- if ($progress !== null) {
- $progress->setMessage('<info>' . $userId . '</info>');
- $progress->setMessage('/', 'job');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('', 'jvm');
- $progress->setMessage('[spoting orphans]', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- $docIds = array();
- foreach ($data as $entry) {
- if ($entry->isValid() && ! $entry->isNoIndex())
- array_push($docIds, (int) $entry->getId());
- }
-
- $deleting = array();
- foreach ($solrDocs as $doc) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $this->lockIndex(true);
-
- if (! in_array($doc->getId(), $docIds) && (! in_array($doc->getId(), $deleting))) {
- array_push($deleting, $doc->getId());
- // $item = ItemDocument::getItem($solrDocs, $doc);
- $doc->removed(true);
- }
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $userId . '</info>/' . $doc->getType());
-
- if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1)
- $progress->setMessage('(' . $dura . ')', 'duration');
-
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
-
- $progress->advance();
- }
- }
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
-
- if (sizeof($deleting) > 0) {
-
- $progress = null;
- if ($this->output != null) {
- $progress = new ProgressBar($this->output, sizeof($deleting));
- $progress->clear();
- }
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $userId . '</info>/' . $type);
- $progress->setMessage('-', 'job');
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('[deleting orphans]', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- foreach ($deleting as $docId) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $this->lockIndex(true);
-
- $del = new ItemDocument($type, $docId);
- $this->solrTools->removeDocument($del);
-
- foreach ($data as $entry) {
- if ($entry->getId() == $docId) {
- $entry->removed(true);
- break;
- }
- }
-
- if ($progress != null) {
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
-
- $progress->advance();
- }
- }
- }
-
- $commit = $this->solrTools->commit(false, $ierror);
- if (! $commit)
- return false;
- else
- $this->lastCommitQueryTime = $commit->getQueryTime();
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
- }
-
- /**
- * return ids of all documents
- *
- * @param string $type
- * @param string $userId
- * @param number $page
- * @param boolean $lastpage
- * @param ItemDocument $ierror
- * @return boolean
- */
- public function getDocuments($type = '', $userId = '', $fileId = 0, &$ierror = '')
- {
- if ($ierror == null || $ierror === '')
- $ierror = new ItemError();
-
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- $fileId = (int) $fileId;
- $client = $this->solrService->getClient();
- $data = array();
- try {
-
- $progress = null;
- if ($this->output != null) {
- if ($fileId > 0)
- $progress = new ProgressBar($this->output, 1);
- else
- $progress = new ProgressBar($this->output, $this->solrTools->count($type, $userId));
- $progress->clear();
- }
-
- if ($progress != null) {
- $progress->setMessage('<info>' . $userId . '</info>/' . $type);
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'duration');
- $progress->setMessage('', 'more');
- $progress->setMessage('%', 'job');
- $progress->setMessage('[preparing]', 'infos');
- $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : ''));
- $progress->start();
- }
-
- if ($type != '')
- $type .= '_';
-
- $ownerQuery = '';
- if ($userId != '') {
- $query = $client->createSelect();
- $helper = $query->getHelper();
-
- $ownerQuery = 'nextant_owner:' . $helper->escapePhrase($userId);
- // OR (nextant_owner:__global'
-
- $groupQuery = '';
- $groups = array_map(function ($value) {
- return (string) $value;
- }, array_keys($this->groupManager->getUserIdGroups($userId)));
- array_push($groups, '__all');
-
- $arrgroups = array();
- foreach ($groups as $group)
- array_push($arrgroups, ' nextant_sharegroup:' . $helper->escapePhrase($group));
-
- if (sizeof($arrgroups) > 0)
- $groupQuery = implode(' OR ', $arrgroups);
-
- if ($groupQuery !== '')
- $ownerQuery = '(' . $ownerQuery . ') OR (nextant_owner:"__global" AND (nextant_share:' . $helper->escapePhrase($userId) . ' OR ' . $groupQuery . '))';
- }
-
- $page = 0;
- $docIds = array();
- while (true) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $query = $client->createSelect();
- $helper = $query->getHelper();
-
- $query->setQuery('id:' . $type . (($fileId > 0) ? $fileId : '*'));
-
- if ($ownerQuery !== '')
- $query->createFilterQuery('owner')->setQuery($ownerQuery);
-
- $query->addSort('id', $query::SORT_ASC);
- $query->setStart($page * self::GETALL_ROWS);
- $query->setRows(self::GETALL_ROWS);
- $query->setFields(array(
- 'id',
- 'nextant_owner',
- 'nextant_path',
- 'nextant_mtime',
- 'nextant_share',
- 'nextant_sharegroup',
- 'nextant_deleted',
- 'nextant_extracted',
- 'nextant_source'
- ));
-
- $resultset = $client->execute($query);
-
- foreach ($resultset as $document) {
-
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $this->lockIndex(true);
-
- $doc = ItemDocument::fromCompleteId($document->id);
- $doc->setOwner($document->nextant_owner);
- $doc->setPath($document->nextant_path);
- $doc->setMTime($document->nextant_mtime);
- $doc->setShare($document->nextant_share);
- $doc->setShareGroup($document->nextant_sharegroup);
- $doc->deleted($document->nextant_deleted);
- $doc->setSource($document->nextant_source);
- $doc->extracted($document->nextant_extracted);
-
- $tick = false;
- if (! in_array($doc->getId(), $docIds)) {
- array_push($docIds, $doc->getId());
- $data[$doc->getType() . '_' . $doc->getId()] = $doc;
- $tick = true;
- }
-
- if ($progress != null) {
-
- if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1)
- $progress->setMessage('(' . $dura . ')', 'duration');
-
- if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) {
- if (! $infoSystem = $this->solrTools->getInfoSystem($ierror))
- $this->manageFailure($ierror, $progress, 'Failed to retreive Info System');
- $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm');
- $this->lastProgressTick = time();
- }
- if ($tick)
- $progress->advance();
- }
- }
-
- if ((($page + 1) * self::GETALL_ROWS) >= $resultset->getNumFound())
- break;
-
- $page ++;
- }
-
- if ($progress != null) {
- $progress->setMessage('', 'jvm');
- $progress->setMessage('', 'infos');
- $progress->setMessage('', 'duration');
- $progress->finish();
- }
-
- return $data;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
- return false;
- }
-
- private function manageFailure($ierror, $progress = null, $message = '')
- {
- if ($ierror == null || $ierror === '')
- $ierror = new ItemError();
-
- if ($this->output != null && $this->debug) {
- $this->output->writeln('');
- if ($ierror->getCode() > 0)
- $this->output->writeln('*** Error #' . $ierror->getCode() . ' (' . $ierror->getMessage() . ')');
- $this->output->writeln('*** ' . $message);
-
- if ($ierror->getLink() !== '')
- $this->output->writeln('> More informations: <comment>' . $ierror->getLink() . '</comment>');
- $this->output->writeln('');
-
- if ($ierror->getCode() == SolrService::EXCEPTION_HTTPEXCEPTION)
- $this->output->writeln('Note: we will wait here for few seconds and check if Solr is still running');
- $this->output->writeln('');
- $this->output->writeln('');
- }
-
- if ($ierror->getCode() == SolrService::EXCEPTION_HTTPEXCEPTION) {
- if ($progress != null) {
- $progress->setMessage('|', 'job');
- $progress->setMessage('[standby]', 'infos');
- $progress->display();
- }
- sleep(30);
-
- if (! $this->solrAdmin->ping($ierror)) {
- if ($this->output != null) {
- $this->output->writeln('');
- $this->output->writeln('');
- $this->output->writeln('Error #' . $ierror->getCode());
- $this->output->writeln('Is Solr Up and Running ?');
- $this->output->writeln('');
- $this->output->writeln('');
- }
-
- if ($this->parent != null)
- $this->parent->end();
- else
- exit();
- return false;
- }
- }
-
- return true;
- }
-
- private function generateAverageTick()
- {
- if (! $this->debug)
- return - 1;
-
- if ($this->lastAverageTick == 0) {
- $this->resetAverageTick();
- return - 1;
- }
-
- $this->lastAverageTickCount ++;
-
- if ((time() - $this->lastAverageTick) > 60) {
- $this->lastAverageTickValue = $this->lastAverageTickCount;
- $this->resetAverageTick();
- return $this->lastAverageTickValue;
- }
- }
-
- private function resetAverageTick()
- {
- $this->lastAverageTick = time();
- $this->lastAverageTickCount = 0;
- }
-}
-
-
-
-
-
diff --git a/lib/Service/MiscService.php b/lib/Service/MiscService.php
deleted file mode 100644
index b18911a..0000000
--- a/lib/Service/MiscService.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use OCP\ILogger;
-
-class MiscService
-{
-
- private $logger;
-
- private $appName;
-
- private $debug;
-
- public function __construct(ILogger $logger, $appName)
- {
- $this->logger = $logger;
- $this->appName = $appName;
- }
-
- public function setDebug($debug)
- {
- $this->debug = $debug;
- }
-
- public function debug($msg)
- {
- if ($this->debug)
- $this->log($msg, 1);
- }
-
- public function log($message, $level = 2)
- {
- $data = array(
- 'app' => $this->appName,
- 'level' => $level
- );
-
- $this->logger->log($level, $message, $data);
- }
-
- public static function arraysIdentical($a, $b)
- {
- if ($a === null || $a === '')
- $a = array();
- if ($b === null || $b === '')
- $b = array();
- if (! is_array($a) || ! is_array($b))
- return true;
-
- sort($a);
- sort($b);
-
- return ($a == $b);
- }
-} \ No newline at end of file
diff --git a/lib/Service/NewsService.php b/lib/Service/NewsService.php
deleted file mode 100644
index 5728d39..0000000
--- a/lib/Service/NewsService.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Items\ItemDocument;
-//use OCA\Bookmarks\Controller\Lib\Bookmarks;
-
-class NewsService
-{
-
- private $configService;
-
- // private $solrService;
-
- // private $solrTools;
- private $miscService;
-
- private $libBookmarks = null;
-
- public function __construct($configService, $miscService)
- {
- $this->configService = $configService;
- $this->miscService = $miscService;
- }
-
- public function configured()
- {
- if (! \OCP\App::isEnabled('news'))
- return false;
-
- if ($this->configService->getAppValue('index_news') == 1)
- return true;
-
- return false;
- }
-
- public function syncDocument(&$item)
- {
- $item->synced(true);
- $item->extractable(true);
-
- return true;
- }
-
- /**
- * get news from a specific user
- *
- * @param number $userId
- * @return array
- */
- public function getNewsPerUserId($userId)
- {
- if (! $this->configured())
- return false;
-
-// if ($this->libBookmarks == null) {
-// $bookmarkApp = new \OCA\Bookmarks\AppInfo\Application();
-// $this->libBookmarks = $bookmarkApp->getContainer()->query(\OCA\Bookmarks\Controller\Lib\Bookmarks::class);
-// }
-
-// $bookmarks = $this->libBookmarks->findBookmarks($userId, 0, 'id', array(), false, - 1);
-
-
- $data = array();
-// foreach ($news as $item) {
-// $item = new ItemDocument(ItemDocument::TYPE_NEWS, $item['id']);
-// $item->setMTime($item['lastmodified']);
-// $item->setAbsolutePath($item['url']);
-// $item->setPath($item['url']);
-// $data[] = $item;
-// }
-
- return $data;
- }
-
- public static function getSearchResult(&$data)
- {
- $entry = array(
- 'id' => $data->getId(),
- 'mtime' => $data->getMTime() * 1000,
- 'name' => $data->getPath(),
- 'permissions' => 27,
- 'type' => 'bookmark'
- );
- // 'mimetype' => 'text/html',
-
- $data->setEntry($entry);
- $data->valid(true);
-
- return true;
- }
-}
-
-
diff --git a/lib/Service/QueueService.php b/lib/Service/QueueService.php
deleted file mode 100644
index f99cce7..0000000
--- a/lib/Service/QueueService.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Events\FilesEvents;
-use \OCA\Nextant\Items\ItemQueue;
-use \OCA\Nextant\Items\ItemDocument;
-use \OCA\Nextant\Db\LiveQueue;
-
-class QueueService
-{
-
- private $userId;
-
- private $configService;
-
- private $indexService;
-
- private $sourceService;
-
- private $miscService;
-
- private $queue = null;
-
- private $parent = null;
-
- public function __construct($liveQueueMapper, $configService, $indexService, $sourceService, $miscService)
- {
- $this->liveQueueMapper = $liveQueueMapper;
- $this->configService = $configService;
- $this->indexService = $indexService;
- $this->sourceService = $sourceService;
- $this->miscService = $miscService;
- }
-
- public function setParent($parent)
- {
- $this->parent = $parent;
- }
-
- public function liveIndex($item)
- {
- switch ($this->configService->getAppValue('index_live')) {
- case '0':
- return;
-
- // case '1':
- // $queue = msg_get_queue($this->configService->getAppValue('index_live_queuekey'));
- // if (! msg_send($queue, 1, ItemQueue::toJson($item)))
- // $this->miscService->log('can\'t msg_send()');
- // break;
-
- case '2':
- $this->liveQueueMapper->insert(new LiveQueue($item));
- break;
- }
- }
-
- public function emptyQueue()
- {
- switch ($this->configService->getAppValue('index_live')) {
- case '0':
- return;
-
- // case '1':
- // msg_remove_queue(msg_get_queue($this->configService->getAppValue('index_live_queuekey')));
- // break;
-
- case '2':
- $this->liveQueueMapper->clear();
- break;
- }
- }
-
- public function readQueue($standby = false)
- {
- switch ($this->configService->getAppValue('index_live')) {
- case '0':
- return;
-
- // case '1':
- // $queue = msg_get_queue($this->configService->getAppValue('index_live_queuekey'));
-
- // $msg_type = null;
- // $msg = null;
- // $max_msg_size = 512;
-
- // $infos = msg_stat_queue($queue);
-
- // if (! $standby && $infos['msg_qnum'] === 0)
- // return false;
-
- // if (! msg_receive($queue, 1, $msg_type, $max_msg_size, $msg, true, 0, $error))
- // return false;
-
- // return ItemQueue::fromJson($msg);
-
- case '2':
- $msg = null;
- while (true) {
- if ($this->parent != null)
- $this->parent->interrupted();
-
- $queue = $this->liveQueueMapper->next();
- if ($queue)
- break;
- if (! $standby && ! $queue)
- return false;
-
- sleep(15);
- }
-
- if ($queue)
- $msg = $queue->getItem();
-
- return ItemQueue::fromJson($msg);
- }
- }
-
- public function executeItem($item)
- {
- if ($item == null)
- return false;
-
- $options = array();
-
- if (! $item->getUserId())
- return false;
-
- switch ($item->getType()) {
-
- case FilesEvents::FILE_UPDATE:
- array_push($options, 'forceshared');
-
- case FilesEvents::FILE_CREATE:
- $this->sourceService->file()->initUser($item->getUserId(), true);
- $files = $this->sourceService->file()->getFilesPerFileId($item->getFileId(), $options);
- if ($files != false && sizeof($files) > 0) {
- $ispack = (sizeof($files) != 1);
- $this->indexService->extract(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $ispack);
- }
- $this->sourceService->file()->endUser();
- break;
-
- case FilesEvents::FILE_TRASH:
- array_push($options, 'deleted');
-
- case FilesEvents::FILE_RENAME:
- case FilesEvents::FILE_RESTORE:
- case FilesEvents::FILE_SHARE:
- case FilesEvents::FILE_UNSHARE:
- array_push($options, 'forceshared');
-
- $this->sourceService->file()->initUser($item->getUserId(), true);
- $files = $this->sourceService->file()->getFilesPerFileId($item->getFileId(), $options);
- if (is_array($files) && sizeof($files) > 0) {
- $ispack = (sizeof($files) != 1);
- $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $ispack);
- }
- $this->sourceService->file()->endUser();
- break;
-
- case FilesEvents::FILE_DELETE:
- if ($item->getFolder()) {
-
- $this->sourceService->file()->initUser($item->getUserId(), true);
- $files = $this->sourceService->file()->getFilesPerUserId('/files', array());
-
- if ($this->configService->getAppValue('index_files_trash') === '1') {
- $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array(
- 'deleted'
- ));
- $files = array_merge($files, $files_trashbin);
- }
-
- $solrDocs = null;
-
- $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $solrDocs);
-
- $this->sourceService->file()->endUser();
- } else {
-
- $doc[] = ItemDocument::fromItemQueue(ItemDocument::TYPE_FILE, $item);
- $this->indexService->removeDocuments($doc, $ierror);
- }
- break;
- }
- }
-} \ No newline at end of file
diff --git a/lib/Service/SolrAdminService.php b/lib/Service/SolrAdminService.php
deleted file mode 100644
index b599786..0000000
--- a/lib/Service/SolrAdminService.php
+++ /dev/null
@@ -1,1521 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\ConfigService;
-use \OCA\Nextant\Service\MiscService;
-use \OCA\Nextant\Items\ItemError;
-use Solarium\Core\Client\Request;
-use Solarium\Solarium;
-
-/**
- *
- * Admin Tools to manage Solr Core
- *
- * @author Maxence Lange
- *
- */
-class SolrAdminService {
-
- private $solrService;
-
- private $configService;
-
- private $miscService;
-
- private $lastMessage;
-
- /**
- *
- * @param SolrService $solrService
- * @param ConfigService $configService
- * @param MiscService $miscService
- */
- public function __construct(
- SolrService $solrService, ConfigService $configService, MiscService $miscService
- ) {
- $this->solrService = $solrService;
- $this->configService = $configService;
- $this->miscService = $miscService;
- }
-
- /**
- * Check the Schema of the Solr Core.
- *
- * @param boolean $fix
- * @param ItemError $ierror
- *
- * @return boolean
- */
- public function checkSchema($fix = false, &$ierror = null) {
- $ierror = new ItemError();
-
- if (!$this->solrService || !$this->solrService->configured()
- || !$this->solrService->getClient()
- ) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
-
- return false;
- }
-
- $fields = self::solrSchema();
- $client = $this->solrService->getClient();
-
- $this->solrService->message('');
- $this->solrService->message('Checking Solr schema fields');
-
- $failed = false;
- $changed = false;
- while (true) {
- foreach ($fields as $field) {
-
- if ($field['type'] === 'copy-field') {
- $this->solrService->message(
- ' * Checking ' . $field['type'] . ' \'' . $field['data']['source'] . '/'
- . $field['data']['dest'] . '\' : ', false
- );
- } else {
- $this->solrService->message(
- ' * Checking ' . $field['type'] . ' \'' . $field['data']['name'] . '\' : ',
- false
- );
- }
-
- if (self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $field, $curr, $ierror
- )
- ) {
- $this->solrService->message('<info>ok</info>');
- } else {
- if ($ierror->getCode() == 0) {
- $this->solrService->message('<error>fail</error>');
- } else {
- return false;
- }
-
- if ($fix) {
- $changed = true;
- if ($field['type'] === 'copy-field') {
- $this->solrService->message(
- ' -> <comment>Fixing ' . $field['type'] . ' \''
- . $field['data']['source'] . '/' . $field['data']['dest']
- . '\'</comment> ', false
- );
- } else {
- $this->solrService->message(
- ' -> <comment>Fixing ' . $field['type'] . ' \''
- . $field['data']['name'] . '\'</comment> ', false
- );
- }
-
- if ($curr) {
- if (!self::modifyField(
- $client, $this->configService->resourceLevel(), $field, $ierror
- )
- ) {
- $this->solrService->message('<error>fail</error>');
- } else if (!self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $field, $curr,
- $ierror
- )
- ) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- $failed = true;
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- } else {
- if (!self::createField(
- $client, $this->configService->resourceLevel(), $field, $ierror
- )
- ) {
- $this->solrService->message('<error>fail</error>');
- } else if (!self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $field, $curr,
- $ierror
- )
- ) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- $failed = true;
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- }
- } else {
- $failed = true;
- }
- }
- }
-
- break;
- }
-
- $this->solrService->message('');
- $this->solrService->message('Cleaning extra fields');
- $currSchema = self::getCurrentSchema($client, $ierror);
-
- $currFieldsType = $currSchema['schema']['fieldTypes'];
- $currFields = $currSchema['schema']['fields'];
- $currDynamicFields = $currSchema['schema']['dynamicFields'];
- $currCopyFields = $currSchema['schema']['copyFields'];
-
- foreach ($currCopyFields as $copyfield) {
- if (!self::checkFieldNecessity($client, $fields, 'copy-field', $copyfield, $ierror)) {
- $this->solrService->message(
- '* Removing copy-field \'' . $copyfield['source'] . '/' . $copyfield['dest']
- . '\' : ', false
- );
- if (!$fix) {
- $this->solrService->message('<comment>please fix this</comment>');
- continue;
- }
-
- if (self::deleteField($client, 'copy-field', $copyfield, $ierror)) {
-
- self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $copyfield, $curr, $ierror
- );
- if ($curr) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- } else {
- if ($ierror->getCode() == 0) {
- $this->solrService->message('<error>fail</error>');
- } else {
- return false;
- }
- }
- }
- }
-
- foreach ($currFields as $field) {
- if (!self::checkFieldNecessity($client, $fields, 'field', $field, $ierror)) {
- $this->solrService->message(
- '* Removing field \'' . $field['name'] . '\' : ', false
- );
- if (!$fix) {
- $this->solrService->message('<comment>please fix this</comment>');
- continue;
- }
-
- if (self::deleteField($client, 'field', $field, $ierror)) {
- self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $field, $curr, $ierror
- );
- if ($curr) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- } else {
- if ($ierror->getCode() == 0) {
- $this->solrService->message('<error>fail</error>');
- } else {
- return false;
- }
- }
- }
- }
-
- foreach ($currFieldsType as $fieldType) {
- if (!self::checkFieldNecessity($client, $fields, 'field-type', $fieldType, $ierror)) {
- $this->solrService->message(
- '* Removing field-type \'' . $fieldType['name'] . '\' : ', false
- );
- if (!$fix) {
- $this->solrService->message('<comment>please fix this</comment>');
- continue;
- }
-
- if (self::deleteField($client, 'field-type', $fieldType, $ierror)) {
- self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $fieldType, $curr, $ierror
- );
- if ($curr) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- } else {
- if ($ierror->getCode() == 0) {
- $this->solrService->message('<error>fail</error>');
- } else {
- return false;
- }
- }
- }
- }
-
- foreach ($currDynamicFields as $fielddyn) {
- if (!self::checkFieldNecessity($client, $fields, 'dynamic-field', $fielddyn, $ierror)) {
- $this->solrService->message(
- '* Removing dynamic-field \'' . $fielddyn['name'] . '\' : ', false
- );
- if (!$fix) {
- $this->solrService->message('<comment>please fix this</comment>');
- continue;
- }
-
- if (self::deleteField($client, 'dynamic-field', $fielddyn, $ierror)) {
- self::checkFieldProperty(
- $client, $this->configService->resourceLevel(), $fielddyn, $curr, $ierror
- );
- if ($curr) {
- $this->solrService->message(
- '<error>fail</error> ' . $ierror->getCode() . ' - '
- . $ierror->getMessage()
- );
- } else {
- $this->solrService->message('<info>ok</info>');
- }
- } else {
- if ($ierror->getCode() == 0) {
- $this->solrService->message('<error>fail</error>');
- } else {
- return false;
- }
- }
- }
- }
- if ($failed) {
- $ierror = new ItemError(SolrService::ERROR_SOLR_CANTFIXFIELD);
-
- return false;
- }
-
- if ($changed) {
- $this->configService->setAppValue('index_files_needed', '1');
- }
-
- return true;
- }
-
- /**
- * Ping and test connection to the Solr Core
- *
- * @param ItemError $ierror
- *
- * @return boolean
- */
- public function ping(&$ierror = null) {
- if (!$this->solrService || !$this->solrService->configured()
- || !$this->solrService->getClient()
- ) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
-
- return false;
- }
-
- $client = $this->solrService->getClient();
- $ping = $client->createPing();
-
- try {
- $result = $client->ping($ping);
-
- return true;
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK') {
- $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage());
- } else {
- $ierror =
- new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- }
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- private static function checkFieldNecessity(
- \Solarium\Client $client, $fields, $type, $check, $ierror
- ) {
- foreach ($fields as $field) {
- if ($type === 'dynamic-field') {
- if ($field['type'] === $type
- && substr(
- $field['data']['name'], 0, strlen($check['name']) - 1
- ) === substr($check['name'], 0, -1)
- ) {
- return true;
- }
- } else if ($type === 'copy-field') {
- if ($field['type'] === $type && $field['data']['source'] === $check['source']
- && $field['data']['dest'] === $check['dest']
- ) {
- return true;
- }
- } else {
- if (key_exists('type', $field) && $field['type'] === $type
- && key_exists(
- 'name', $field['data']
- )
- && $field['data']['name'] === $check['name']
- ) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- /**
- * Check a field property from a Solr core using Solarium Client
- *
- * @param \Solarium\Client $client
- * @param array $field
- * @param array $property
- *
- * @return boolean
- */
- private static function checkFieldProperty(
- \Solarium\Client $client, $resources, $field, &$property, &$ierror
- ) {
- $property = self::getFieldProperty($client, $field, $ierror);
-
- if (!$property) {
- return false;
- }
-
- $data = $field['data'];
- switch ($resources) {
- case ConfigService::RESOURCE_LEVEL_LOWER:
- if (key_exists('lower', $field)) {
- $data = array_merge($field['data'], $field['lower']);
- }
- break;
-
- case ConfigService::RESOURCE_LEVEL_HIGHER:
- if (key_exists('higher', $field)) {
- $data = array_merge($field['data'], $field['higher']);
- }
- break;
- }
-
- return self::checkFieldPropertyRecursive($data, $property);
- }
-
- private static function checkFieldPropertyRecursive($value, $property) {
- if (is_array($value)) {
-
- if (!is_array($property)) {
- return false;
- }
-
- if (sizeof($value) != sizeof($property)) {
- return false;
- }
-
- $key = array_keys($value);
- foreach ($key as $k) {
- if (!key_exists($k, $property)) {
- return false;
- }
-
- if (!self::checkFieldPropertyRecursive($value[$k], $property[$k])) {
- return false;
- }
- }
- } else if ($value != $property) {
- return false;
- }
-
- return true;
- }
-
- private static function getCurrentSchema(\Solarium\Client $client, &$ierror = '') {
- try {
- $query = $client->createSelect();
- $request = $client->createRequest($query);
-
- $request->setHandler('schema');
-
- $response = $client->executeRequest($request);
- if ($response->getStatusCode() != 200) {
- return false;
- }
-
- $result = json_decode($response->getBody(), true);
-
- return $result;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * Get properties on a field based on its type and name
- *
- * @param \Solarium\Client $client
- * @param string $fieldType
- * @param string $fieldName
- *
- * @return boolean|mixed
- */
- private static function getFieldProperty(\Solarium\Client $client, $field, &$ierror = '') {
- if (!key_exists('type', $field)) {
- return false;
- }
-
- $url = '';
- if ($field['type'] === 'field') {
- $url = 'schema/fields/';
- }
- if ($field['type'] === 'dynamic-field') {
- $url = 'schema/dynamicfields/';
- }
- if ($field['type'] === 'field-type') {
- $url = 'schema/fieldtypes/';
- }
- if ($field['type'] === 'copy-field') {
- return self::getCopyFieldProperty($client, $field, $ierror);
- }
-
- // $url = 'schema/copyfields/';
- if ($url == '') {
- return false;
- }
-
- try {
- $query = $client->createSelect();
- $request = $client->createRequest($query);
-
- $request->setHandler($url . $field['data']['name']);
-
- $response = $client->executeRequest($request);
- if ($response->getStatusCode() != 200) {
- return false;
- }
-
- $result = json_decode($response->getBody());
- foreach ($result as $data) {
- foreach ($data as $k => $v) {
- if ($v instanceof stdClass) {
- $v = (array)$v;
- }
- $property[$k] = $v;
- }
- }
-
- // lazy one-liner method : convert stdClass -> array()
- $property = json_decode(json_encode($property), true);
-
- return $property;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * Get properties on a field based on its type and name
- *
- * @param \Solarium\Client $client
- * @param string $fieldType
- * @param string $fieldName
- *
- * @return boolean|mixed
- */
- private static function getCopyFieldProperty(\Solarium\Client $client, $field, &$ierror = '') {
- $url = '';
- if ($field['type'] != 'copy-field') {
- return false;
- }
-
- // $url = 'schema/copyfields/';
-
- $curr = self::getCurrentSchema($client, $ierror);
- if (!key_exists('copyFields', $curr['schema'])) {
- return false;
- }
-
- $currCopyFields = $curr['schema']['copyFields'];
-
- foreach ($currCopyFields as $copyfield) {
- if ($copyfield['dest'] === $field['data']['dest']) {
- return json_decode(json_encode($copyfield), true);
- }
- }
-
- return false;
- }
-
- /**
- * create field on the Solr Core
- *
- * @param \Solarium\Client $client
- * @param array $field
- */
- private static function createField(\Solarium\Client $client, $resources, $field, &$ierror) {
- $data = $field['data'];
- switch ($resources) {
- case ConfigService::RESOURCE_LEVEL_LOWER:
- if (key_exists('lower', $field)) {
- $data = array_merge($field['data'], $field['lower']);
- }
- break;
-
- case ConfigService::RESOURCE_LEVEL_HIGHER:
- if (key_exists('higher', $field)) {
- $data = array_merge($field['data'], $field['higher']);
- }
- break;
- }
-
- $send = array(
- 'add-' . $field['type'] => $data
- );
-
- return self::solariumPostSchemaRequest($client, $send, $ierror);
- }
-
- /**
- * modify field on the Solr Core
- *
- * @param \Solarium\Client $client
- * @param array $field
- */
- private static function modifyField(\Solarium\Client $client, $resources, $field, &$ierror) {
- $data = $field['data'];
- switch ($resources) {
- case ConfigService::RESOURCE_LEVEL_LOWER:
- if (key_exists('lower', $field)) {
- $data = array_merge($field['data'], $field['lower']);
- }
- break;
-
- case ConfigService::RESOURCE_LEVEL_HIGHER:
- if (key_exists('higher', $field)) {
- $data = array_merge($field['data'], $field['higher']);
- }
- break;
- }
- $send = array(
- 'replace-' . $field['type'] => $data
- );
-
- return self::solariumPostSchemaRequest($client, $send, $ierror);
- }
-
- /**
- * delete field on the Solr Core
- *
- * @param \Solarium\Client $client
- * @param array $field
- */
- private static function deleteField(\Solarium\Client $client, $type, $field, &$ierror) {
- if ($type === 'copy-field') {
- $data = array(
- 'delete-' . $type => array(
- 'source' => $field['source'],
- 'dest' => $field['dest']
- )
- );
- } else {
- $data = array(
- 'delete-' . $type => array(
- 'name' => $field['name']
- )
- );
- }
-
- return self::solariumPostSchemaRequest($client, $data, $ierror);
- }
-
- /**
- * send post request to the Solr core
- *
- * @param \Solarium\Client $client
- * @param array $data
- *
- * @return boolean
- */
- private static function solariumPostSchemaRequest(\Solarium\Client $client, $data, &$ierror = ''
- ) {
- try {
- $query = $client->createSelect();
- $request = $client->createRequest($query);
-
- $request->setHandler('schema');
- $request->setMethod(Request::METHOD_POST);
-
- $request->setRawData(json_encode($data));
- $response = $client->executeRequest($request);
-
- if ($response->getStatusCode() != 200) {
- $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, 'Status Code != 200');
-
- return false;
- }
-
- return true;
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK') {
- $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage());
- } else {
- $ierror =
- new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- }
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * reset Solr Core
- *
- * @param ITemError $ierror
- *
- * @return boolean
- */
- public function clear(&$ierror = 0) {
- if (!$this->solrService || !$this->solrService->configured()
- || !$this->solrService->getClient()
- ) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
-
- return false;
- }
-
- $client = $this->solrService->getClient();
-
- try {
- $update = $client->createUpdate();
-
- $update->addDeleteQuery('*:*');
- $update->addCommit();
- $result = $client->update($update);
-
- return true;
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK') {
- $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage());
- } else {
- $ierror =
- new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- }
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- public static function solrSchema() {
- $fields = array();
-
- //
- // field-types
- //
-
- // boolean
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'boolean',
- 'class' => 'solr.BoolField',
- 'sortMissingLast' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'booleans',
- 'class' => 'solr.BoolField',
- 'sortMissingLast' => true,
- 'multiValued' => true
- )
- )
- );
-
- // double
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'double',
- 'class' => 'solr.TrieDoubleField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'doubles',
- 'class' => 'solr.TrieDoubleField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0',
- 'multiValued' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tdouble',
- 'class' => 'solr.TrieDoubleField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tdoubles',
- 'class' => 'solr.TrieDoubleField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8',
- 'multiValued' => true
- )
- )
- );
-
- // float
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'float',
- 'class' => 'solr.TrieFloatField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'floats',
- 'class' => 'solr.TrieFloatField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0',
- 'multiValued' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tfloat',
- 'class' => 'solr.TrieFloatField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tfloats',
- 'class' => 'solr.TrieFloatField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8',
- 'multiValued' => true
- )
- )
- );
-
- // int
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'int',
- 'class' => 'solr.TrieIntField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'ints',
- 'class' => 'solr.TrieIntField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0',
- 'multiValued' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tint',
- 'class' => 'solr.TrieIntField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tints',
- 'class' => 'solr.TrieIntField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8',
- 'multiValued' => true
- )
- )
- );
-
- // long
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'long',
- 'class' => 'solr.TrieLongField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'longs',
- 'class' => 'solr.TrieLongField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '0',
- 'multiValued' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tlong',
- 'class' => 'solr.TrieLongField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tlongs',
- 'class' => 'solr.TrieLongField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '8',
- 'multiValued' => true
- )
- )
- );
- // string
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'string',
- 'class' => 'solr.StrField',
- 'sortMissingLast' => true,
- 'docValues' => true
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'strings',
- 'class' => 'solr.StrField',
- 'sortMissingLast' => true,
- 'docValues' => true,
- 'multiValued' => true
- )
- )
- );
-
- // date
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tdate',
- 'class' => 'solr.TrieDateField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '6'
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'tdates',
- 'class' => 'solr.TrieDateField',
- 'positionIncrementGap' => '0',
- 'docValues' => true,
- 'precisionStep' => '6',
- 'multiValued' => true
- )
- )
- );
-
- // ignored
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'ignored',
- 'class' => 'solr.StrField',
- 'indexed' => false,
- 'stored' => false,
- 'docValues' => false,
- 'multiValued' => true
- )
- )
- );
-
- // text
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'text_general',
- 'class' => 'solr.TextField',
- 'omitNorms' => false,
- 'indexAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- ),
- array(
- 'class' => 'solr.NGramFilterFactory',
- 'maxGramSize' => '20',
- 'minGramSize' => '3'
- )
- )
- ),
- 'queryAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- )
- )
- )
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'text_general_edge',
- 'class' => 'solr.TextField',
- 'omitNorms' => false,
- 'indexAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- ),
- array(
- 'class' => 'solr.EdgeNGramFilterFactory',
- 'maxGramSize' => '20',
- 'minGramSize' => '1'
- )
- )
- ),
- 'queryAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- )
- )
- )
- )
- )
- );
-
- array_push(
- $fields, array(
- 'type' => 'field-type',
- 'data' => array(
- 'name' => 'text_general_word',
- 'class' => 'solr.TextField',
- 'omitNorms' => false,
- 'indexAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- )
- )
- ),
- 'queryAnalyzer' => array(
- 'tokenizer' => array(
- 'class' => 'solr.StandardTokenizerFactory'
- ),
- 'filters' => array(
- array(
- 'class' => 'solr.StandardFilterFactory'
- ),
- array(
- 'class' => 'solr.LowerCaseFilterFactory'
- ),
- array(
- 'class' => 'solr.ASCIIFoldingFilterFactory'
- )
- )
- )
- )
- )
- );
-
- //
- // fields
- //
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => '_version_',
- 'type' => 'long',
- 'indexed' => true,
- 'stored' => false
- )
- )
- );
-
- // id
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'id',
- 'type' => 'string',
- 'multiValued' => false,
- 'indexed' => true,
- 'required' => true,
- 'stored' => true
- )
- )
- );
-
- // text
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'text',
- 'type' => 'text_general',
- 'indexed' => true,
- 'stored' => false,
- 'multiValued' => false
- )
- )
- );
-
- // text_edge
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'text_edge',
- 'type' => 'text_general_edge',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- ),
- 'higher' => array(
- 'termVectors' => true,
- 'termPositions' => true,
- 'termOffsets' => true
- ),
- 'lower' => array(
- 'stored' => false
- )
- )
- );
-
- // text_word
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'text_word',
- 'type' => 'text_general_word',
- 'multiValued' => false,
- 'indexed' => true,
- 'stored' => false,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_path
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_path',
- 'type' => 'text_general',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_owner
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_owner',
- 'type' => 'string',
- 'docValues' => false,
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_mtime
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_mtime',
- 'type' => 'int',
- 'docValues' => false,
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_share
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_share',
- 'type' => 'string',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => true
- )
- )
- );
-
- // nextant_sharegroup
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_sharegroup',
- 'type' => 'string',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => true
- )
- )
- );
-
- // nextant_deleted
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_deleted',
- 'type' => 'boolean',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_source
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_source',
- 'type' => 'string',
- 'docValues' => false,
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_tags
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_tags',
- 'type' => 'string',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => true
- )
- )
- );
-
- // nextant_extracted
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_extracted',
- 'type' => 'boolean',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_ocr
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_ocr',
- 'type' => 'int',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- // nextant_unmounted
- array_push(
- $fields, array(
- 'type' => 'field',
- 'data' => array(
- 'name' => 'nextant_unmounted',
- 'type' => 'int',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => false
- )
- )
- );
-
- //
- // dunamic-fields
- //
-
- // ignored_
- array_push(
- $fields, array(
- 'type' => 'dynamic-field',
- 'data' => array(
- 'name' => 'ignored_*',
- 'type' => 'ignored',
- 'multiValued' => true
- )
- )
- );
-
- // nextant_attr_
- array_push(
- $fields, array(
- 'type' => 'dynamic-field',
- 'data' => array(
- 'name' => 'nextant_attr_*',
- 'type' => 'string',
- 'indexed' => true,
- 'stored' => true,
- 'multiValued' => true
- )
- )
- );
-
- //
- // copy-field
- //
-
- // text_edge
- array_push(
- $fields, array(
- 'type' => 'copy-field',
- 'data' => array(
- 'source' => 'text_edge',
- 'dest' => 'text'
- )
- )
- );
-
- // text_word
- array_push(
- $fields, array(
- 'type' => 'copy-field',
- 'data' => array(
- 'source' => 'text_edge',
- 'dest' => 'text_word'
- )
- )
- );
-
- return $fields;
- }
-}
- \ No newline at end of file
diff --git a/lib/Service/SolrService.php b/lib/Service/SolrService.php
deleted file mode 100644
index 6f2a029..0000000
--- a/lib/Service/SolrService.php
+++ /dev/null
@@ -1,816 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Items\ItemError;
-use \OCA\Nextant\Service\FileService;
-use \OCA\Nextant\Service\ConfigService;
-use \OCA\Nextant\Items\ItemDocument;
-
-class SolrService
-{
-
- const SCORE_TEXT_SIMPLE = 1;
-
- const SCORE_TEXT_EDGE = 5;
-
- const SCORE_TEXT_LITTLEWORD = 1;
-
- const SCORE_SENTENCE_COEF = 1000;
-
- const SCORE_PATH = 1000;
-
- // no solr
- const ERROR_SOLRSERVICE_DOWN = 2;
-
- // Owner is not set - mostly a developper mistake
- const ERROR_OWNER_NOT_SET = 4;
-
- // Type of document is not set
- const ERROR_TYPE_NOT_SET = 6;
-
- const ERROR_TOOWIDE_SEARCH = 8;
-
- // Config is not well formed
- const ERROR_SOLR_CONFIG = 19;
-
- // can't reach http - solr running at the right place ?
- const EXCEPTION_HTTPEXCEPTION = 21;
-
- // issue during runtime
- const EXCEPTION_RUNTIME = 22;
-
- // can't reach solr - check uri
- const EXCEPTION_SOLRURI = 24;
-
- const ERROR_SOLR_CANTFIXFIELD = 26;
-
- const EXCEPTION_INDEX_FAILED = 31;
-
- // can't extract - check solr configuration for the solr-cell plugin
- const EXCEPTION_EXTRACT_FAILED = 41;
-
- const ERROR_DOCUMENT_NOT_EXIST = 49;
-
- const EXCEPTION_UPDATE_FAILED = 51;
-
- const EXCEPTION_UPDATE_FIELD_FAILED = 61;
-
- const EXCEPTION_UPDATE_QUERY_FAILED = 71;
-
- const EXCEPTION_UPDATE_MAXIMUM_REACHED = 63;
-
- const EXCEPTION_SEARCH_FAILED = 81;
-
- const EXCEPTION_SUGGEST_FAILED = 85;
-
- const EXCEPTION_REMOVE_FAILED = 101;
-
- const EXCEPTION_OPTIMIZE_FAILED = 121;
-
- // undocumented exception
- const EXCEPTION = 9;
-
- const SEARCH_OWNER = 1;
-
- const SEARCH_SHARED = 2;
-
- const SEARCH_SHARED_GROUP = 4;
-
- const SEARCH_EXTERNAL = 8;
-
- const SEARCH_ALL = 15;
-
- private $solariumClient;
-
- private $configService;
-
- private $miscService;
-
- private $owner = '';
-
- private $groups = array();
-
- private $configured = false;
-
- private $output = null;
-
- public function __construct($client, $configService, $miscService)
- {
- $this->solariumClient = $client;
- $this->configService = $configService;
- $this->miscService = $miscService;
- }
-
- public function setDebug($debug)
- {
- $this->miscService->setDebug($debug);
- }
-
- public function setOutput(&$output)
- {
- $this->output = $output;
- }
-
- public function configured($first = false, &$ierror = '')
- {
- if (! $this->configured) {
- $isIt = $this->configService->getAppValue('configured');
- if ($isIt === '1')
- $this->configured = true;
- if ($first && $isIt > 0)
- $this->configured = true;
- }
-
- if (! $this->configured)
- $ierror = new ItemError(ItemError::ERROR_SOLR_NOT_FULLY_CONFIGURED);
-
- return $this->configured;
- }
-
- // If $config == null, reset config to the one set in the admin
- public function setClient($config)
- {
- $toS = $this->configService->toSolarium($config);
- if (! $toS)
- return false;
-
- $this->solariumClient = new \Solarium\Client($toS);
- if ($config != null)
- $this->configured = true;
- else
- $this->configured = false;
-
- return true;
- }
-
- public function getClient(&$ierror = '')
- {
- if ($this->solariumClient === false)
- $ierror = new ItemError(ItemError::ERROR_GET_SOLARIUM_CLIENT);
-
- return $this->solariumClient;
- }
-
- public function getAdminClient()
- {
- if (! $this->solariumClient)
- return false;
- if (! $this->configured)
- return false;
-
- $options = $this->solariumClient->getOptions();
- unset($options['endpoint']['localhost']['core']);
- return new \Solarium\Client($options);
- }
-
- public function getClientConfig()
- {
- return $this->solariumClient->getOptions();
- }
-
- public function setOwner($owner, $groups = array())
- {
- $this->owner = $owner;
- $this->groups = $groups;
- }
-
- public function extractableFile($mimetype, $path = '')
- {
- $filters = $this->configService->getFileFilters();
-
- if ($path !== '' && $pinfo = pathinfo($path)) {
- if (key_exists('extension', $pinfo) && in_array('.' . $pinfo['extension'], $filters['extensions']))
- return false;
- }
-
- switch (FileService::getBaseTypeFromMime($mimetype)) {
- case 'text':
- if ($filters['text'] !== '1')
- return false;
- return true;
- }
-
- switch ($mimetype) {
-
- case 'application/epub+zip':
- if ($filters['pdf'] !== '1')
- return false;
- return true;
-
- case 'application/pdf':
- if ($filters['pdf'] !== '1')
- return false;
- return true;
-
- case 'application/rtf':
- if ($filters['pdf'] !== '1')
- return false;
- return true;
-
- case 'application/msword':
- if ($filters['office'] !== '1')
- return false;
- return true;
-
- case 'image/jpeg':
- if ($filters['image'] !== '1')
- return false;
- return true;
-
- case 'image/tiff':
- if ($filters['image'] !== '1')
- return false;
- return true;
-
- case 'audio/mpeg':
- if ($filters['audio'] !== '1')
- return false;
- return true;
-
- case 'audio/flac':
- if ($filters['audio'] !== '1')
- return false;
- return true;
-
- case 'application/octet-stream':
- if ($path === '')
- return false;
-
- $pinfo = pathinfo($path);
-
- if (key_exists('extension', $pinfo) && substr($pinfo['extension'], 0, 1) === 'd' && ((int) (substr($pinfo['extension'], 1)) > 0)) {
- $tmppath = substr($path, 0, strrpos($path, '.'));
- $tmpmime = \OC::$server->getMimeTypeDetector()->detectPath($tmppath);
-
- if ($tmpmime === 'application/octet-stream')
- return false;
- return $this->extractableFile($tmpmime);
- }
-
- if (key_exists('extension', $pinfo))
- return self::extractableFileExtension($pinfo['extension']);
-
- return false;
- }
-
- $acceptedMimeType = array(
- 'vnd' => array(
- 'application/vnd.oasis.opendocument',
- 'application/vnd.sun.xml',
- 'application/vnd.openxmlformats-officedocument',
- 'application/vnd.ms-word',
- 'application/vnd.ms-powerpoint',
- 'application/vnd.ms-excel'
- )
- );
-
- foreach ($acceptedMimeType['vnd'] as $mt) {
- if (substr($mimetype, 0, strlen($mt)) == $mt) {
- if ($filters['office'] !== '1')
- return false;
- return true;
- }
- }
-
- return false;
- }
-
- /**
- *
- * @param unknown $extension
- * @return unknown|boolean
- */
- public static function extractableFileExtension($extension)
- {
- switch ($extension) {
- case 'srt':
- return true;
-
- case 'mid':
- return true;
-
- case 'eml':
- return true;
- }
-
- return false;
- }
-
- /**
- * extract a file.
- *
- * @param string $path
- * @param int $docid
- * @param string $mimetype
- * @return result
- */
- public function indexDocument(&$document, &$ierror = '')
- {
- if (! $this->configured())
- return false;
-
- if ($document->getAbsolutePath() == null) {
-
- if ($document->isExtractable())
- $document->failedExtract(true);
-
- $document->extractable(false);
- if ($this->configService->getAppValue('index_files_tree') !== '1') {
- $ierror = new ItemError(ItemError::EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH);
- return false;
- }
- }
-
- if ($document->getType() == null || $document->getType() == '') {
- $ierror = new ItemError(self::ERROR_TYPE_NOT_SET);
- return false;
- }
-
- if ($this->owner == '') {
- $ierror = new ItemError(self::ERROR_OWNER_NOT_SET);
- return false;
- }
-
- if (! $this->getClient()) {
- $ierror = new ItemError(self::ERROR_SOLR_CONFIG);
- return false;
- }
-
- // $document->failedExtract(false);
- // $document->failedIndex(false);
-
- try {
- $client = $this->getClient();
-
- if ($document->isExtractable()) {
- $query = $client->createExtract();
- $query->setUprefix('nextant_attr_');
- // if ($this->configService->resourceLevel() === ConfigService::RESOURCE_LEVEL_LOWER)
- // $query->addFieldMapping('content', 'text_light');
- // else
- $query->addFieldMapping('content', 'text_edge');
-
- $query->addFieldMapping('div', 'ignored_');
- $query->addFieldMapping('html', 'ignored_');
- $query->addFieldMapping('link', 'ignored_');
- $query->addFieldMapping('style', 'ignored_');
- $query->addFieldMapping('script', 'ignored_');
- $query->addFieldMapping('input', 'ignored_');
- $query->addFieldMapping('form', 'ignored_');
- $query->addFieldMapping('img', 'ignored_');
- $query->addFieldMapping('a', 'ignored_');
- $query->addFieldMapping('p', 'ignored_');
- $query->addFieldMapping('span', 'ignored_');
- $query->addFieldMapping('h1', 'ignored_');
- $query->addFieldMapping('h2', 'ignored_');
- $query->addFieldMapping('h3', 'ignored_');
- $query->addFieldMapping('table', 'ignored_');
- $query->addFieldMapping('tr', 'ignored_');
- $query->addFieldMapping('td', 'ignored_');
- $query->addFieldMapping('b', 'ignored_');
- $query->addFieldMapping('i', 'ignored_');
- $query->addFieldMapping('ul', 'ignored_');
- $query->addFieldMapping('li', 'ignored_');
-
- $query->addFieldMapping('media_black_point', 'ignored_');
- $query->addFieldMapping('media_white_point', 'ignored_');
-
- $query->setFile($document->getAbsolutePath());
- $query->setOmitHeader(true);
- } else
- $query = $client->createUpdate();
-
- // add document
- $doc = $query->createDocument();
- $doc->id = $document->getType() . '_' . $document->getId();
- $doc->nextant_source = $document->getType();
-
- $doc->nextant_mtime = $document->getMTime();
- $doc->nextant_owner = $document->getOwner();
- $doc->nextant_path = $document->getPath();
- $doc->nextant_share = $document->getShare();
- $doc->nextant_sharegroup = $document->getShareGroup();
- $doc->nextant_deleted = $document->isDeleted();
-
- if ($document->isExtractable()) {
- $doc->nextant_extracted = true;
-
- // $query->setCommit(true);
- $query->setDocument($doc);
-
- // custom options
- $request = $client->createRequest($query);
- $request->addParam('captureAttr', true);
- $request->addParam('ignoreTikaException', true);
- // $request->addParam('extractInlineImages', true);
- // $request->addParam('ocrStrategy', 'ocr_and_text');
-
- $response = $client->executeRequest($request);
- $ret = $client->createResult($query, $response);
-
- if ($ret) {
- $document->extracted(true);
- $document->processed(true);
- $document->indexed(true);
- return true;
- }
- } else {
- $doc->text = '';
- // $query->addCommit();
- $query->addDocuments(array(
- $doc
- ));
-
- $ret = $client->update($query);
-
- if ($ret) {
- $document->processed(true);
- $document->indexed(true);
- return true;
- }
- }
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK') {
- if ($document->isExtractable())
- $ierror = new ItemError(self::EXCEPTION_EXTRACT_FAILED, $ehe->getStatusMessage());
- else
- $ierror = new ItemError(self::EXCEPTION_INDEX_FAILED, $ehe->getStatusMessage());
- } else
- $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(self::EXCEPTION, $e->getMessage());
- }
-
- if ($document->isExtractable())
- $document->failedExtract(true);
- else
- $document->failedIndex(true);
-
- return false;
- }
-
- public function search($string, $options = array(), &$ierror = null)
- {
- $ierror = new ItemError();
-
- if (! $this->configured(false, $ierror))
- return false;
-
- if ($this->getClient($ierror) === false)
- return false;
-
- $string = str_replace(' ', ' ', trim($string));
- if (substr_count($string, '"') & 1)
- $string = substr_replace($string, '', strrpos($string, '"'), 1);
-
- $astring = preg_split("/(\ )(?=(?:[^\"]|\"[^\"]*\")*$)/m", $string);
-
- if ($string === '')
- return false;
-
- if ($options == null)
- $options = array();
-
- try {
- $client = $this->getClient();
- $query = $client->createSelect();
-
- $helper = $query->getHelper();
-
- if (in_array('no_owner_check', $options))
- $ownerQuery = '';
-
- else {
-
- $ownerQuery = $this->generateOwnerQuery(self::SEARCH_ALL, $helper, $ierror);
-
- if ($ownerQuery === false)
- return false;
-
- if ($ownerQuery === '') {
- $ierror = new ItemError(self::ERROR_TOOWIDE_SEARCH);
- return false;
- }
- }
-
- // array_push($options, 'complete_words');
- // $query->setQuery('text:' . ((! in_array('complete_words', $options)) ? '*' : '') . $helper->escapePhrase($string));
-
- $path = '';
- $special = '+-';
- $docminus = array();
- $islist = array();
- $q = '(text_edge:"' . $helper->escapeTerm(str_replace('"', '', $string)) . '"^150)';
- foreach ($astring as $qstr) {
-
- $coef = 1;
-
- $oper = '';
- if (strpos($special, substr($qstr, 0, 1)) !== false) {
- $oper = substr($qstr, 0, 1);
- $qstr = substr($qstr, 1);
- }
-
- $unqstr = str_replace('"', '', $qstr);
-
- if (substr($unqstr, 0, 3) === 'is:') {
- $islist[] = substr($unqstr, 3);
- continue;
- }
-
- if ($oper === '-') {
- $docminus[] = $oper . 'text:"' . $helper->escapeTerm($unqstr) . '"';
- $docminus[] = $oper . 'text_edge:"' . $helper->escapeTerm($unqstr) . '"';
- continue;
- }
-
- $path .= $oper . 'nextant_path:"' . $helper->escapeTerm(str_replace('"', '', $qstr)) . '"^' . self::SCORE_PATH . ' ' . "\n";
-
- if (substr($qstr, 0, 1) == '"')
- $coef = self::SCORE_SENTENCE_COEF;
-
- // if (strpos($qstr, ' '))
- // $coef = self::SCORE_SENTENCE_COEF;
-
- if (strlen($unqstr) >= 4) {
- $q .= ' OR (' . $oper . 'text:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_SIMPLE * $coef) . ')';
- $q .= ' OR (' . $oper . 'text_edge:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_EDGE * $coef) . ')';
- } else {
- $q .= ' OR (' . $oper . 'text_word:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_LITTLEWORD) . ')';
- }
- }
-
- if ($path !== '')
- $q = '(' . $q . ")\n OR (" . $path . ')';
-
- if (key_exists('limit_document_id', $options))
- $q = '(' . $q . ")\n AND (id:" . $options['limit_document_id'] . ')';
-
- foreach ($islist as $is) {
-
- $addq = '';
- switch ($is) {
- case 'deleted':
- $addq = 'nextant_deleted:true AND nextant_source:files';
- break;
-
- case 'files':
- $addq = 'nextant_deleted:false AND nextant_source:files';
- break;
-
- case 'bookmarks':
- case 'bookmark':
- case 'bm':
- $addq = 'nextant_source:bookmarks';
- break;
- }
-
- if ($addq !== '')
- $q = "($q)\n AND ($addq)";
- }
-
- foreach ($docminus as $mdoc) {
- $q .= "\n" . $mdoc;
- }
-
- // Uncomment to display the request sent to solr
- // $this->miscService->log($q);
-
- $query->setRows(25);
- $query->setQuery($q);
-
- if ($ownerQuery !== '')
- $query->createFilterQuery('owner')->setQuery($ownerQuery);
-
- $query->setFields(array(
- 'id',
- 'nextant_deleted',
- 'nextant_path',
- 'nextant_source',
- 'nextant_owner',
- 'nextant_mtime',
- 'nextant_attr_content_type',
- 'score'
- ));
-
- // if (key_exists('current_directory', $options))
- // $query->setQuery('nextant_path:' . $helper->escapePhrase($options['current_directory']));
-
- $hl = null;
- if ($this->configService->resourceLevel() > ConfigService::RESOURCE_LEVEL_LOWER) {
- $hl = $query->getHighlighting();
- // $hl->setAlternateField('text_dense');
- $hl->setFragSize(70);
-
- if ($this->configService->resourceLevel() === ConfigService::RESOURCE_LEVEL_HIGHER) {
- $hl->setUsePhraseHighlighter(true);
- $hl->setUseFastVectorHighlighter(true);
- $hl->setBoundaryScannerType('SENTENCE');
-
- // $hl->setBoundaryScannerMaxScan();
- // $hl->setBoundaryScannerChars();
- // $hl->setBoundaryScannerLanguage();
- // $hl->setBoundaryScannerCountry();
- }
-
- // $hl->setSimplePrefix('<span class="nextant_hl">');
- // $hl->setSimplePostfix('</span>');
-
- switch ($this->configService->resourceLevel()) {
- case ConfigService::RESOURCE_LEVEL_LOW:
- case ConfigService::RESOURCE_LEVEL_MID:
- $hl->setSnippets(2);
- $hl->setFragSize(100);
- $hl->setMaxAnalyzedChars(50000);
- break;
-
- case ConfigService::RESOURCE_LEVEL_HIGH:
- $hl->setSnippets(4);
- $hl->setMaxAnalyzedChars(100000);
- break;
-
- case ConfigService::RESOURCE_LEVEL_HIGHER:
- $hl->setSnippets(4);
- $hl->setMaxAnalyzedChars(200000);
- break;
- }
-
- $hl->setFields(array(
- 'text_edge'
- ));
- }
-
- $resultset = $client->select($query);
- if ($hl !== null)
- $highlighting = $resultset->getHighlighting();
-
- $return = array();
- foreach ($resultset as $document) {
-
- $item = ItemDocument::fromSolr($document);
- $item->shared(($document->nextant_owner != $this->owner));
-
- // highlighting
- if ($hl !== null) {
- $hlDoc = $highlighting->getResult($document->id);
- $item->setHighlighting($hlDoc->getField('text_edge'));
- }
-
- $return[] = $item;
- }
-
- return $return;
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK')
- $ierror = new ItemError(self::EXCEPTION_SEARCH_FAILED, $ehe->getStatusMessage());
- else
- $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(self::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- public function suggest($string, &$ierror = '')
- {
- if (! $this->configured())
- return false;
-
- if ($this->getClient() == false)
- return false;
-
- try {
- $client = $this->getClient();
- $query = $client->createSuggester();
-
- $query->setQuery($string);
-
- $query->setDictionary('suggest');
- $query->setOnlyMorePopular(true);
- $query->setCount(5);
- $query->setCollate(true);
-
- $resultset = $client->suggester($query);
-
- $t = 0;
- $suggTotal = sizeof($resultset);
- $suggestions = array();
- foreach ($resultset as $term => $termResult) {
-
- $t ++;
- if ($t == $suggTotal) {
- foreach ($termResult as $result) {
- $suggest = '<b>' . $string . '</b>' . (($termResult->getEndOffset() >= strlen($string)) ? substr($result, strlen($term)) : '');
-
- if (! self::suggestionAlreadyKnown($suggestions, $suggest))
- $suggestions[] = array(
- 'suggestion' => $suggest
- );
- }
- }
- }
-
- // $this->miscService->log(var_export($suggestions, true));
-
- return $suggestions;
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK')
- $ierror = new ItemError(self::EXCEPTION_SUGGEST_FAILED, $ehe->getStatusMessage());
- else
- $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(self::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- private function generateOwnerQuery($type, $helper, &$ierror)
- {
- $ownerQuery = '';
- if ($type & self::SEARCH_OWNER) {
- if ($this->owner == '') {
- $ierror = new ItemError(self::ERROR_OWNER_NOT_SET);
- return false;
- }
-
- $ownerQuery .= 'nextant_owner:' . $helper->escapePhrase($this->owner) . ' ';
- }
-
- if ($type & self::SEARCH_SHARED) {
- if ($this->owner == '') {
- $ierror = new ItemError(self::ERROR_OWNER_NOT_SET);
- return false;
- }
- $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . 'nextant_share:' . $helper->escapePhrase($this->owner) . ' ';
- }
-
- // if ($type & self::SEARCH_EXTERNAL) {
- // $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . 'nextant_share:"__all" ';
- // }
-
- if ($type & self::SEARCH_SHARED_GROUP) {
- $ownerGroups = '';
- $groups = array();
- foreach ($this->groups as $group)
- array_push($groups, ' nextant_sharegroup:' . $helper->escapePhrase($group));
-
- if (sizeof($groups) > 0)
- $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . implode(' OR ', $groups);
- }
-
- return $ownerQuery;
- }
-
- public function message($line, $newline = true)
- {
- if ($this->output != null) {
- if ($newline)
- $this->output->writeln($line);
- else
- $this->output->write($line);
- } else
- $this->lastMessage = $line;
- }
-
- private static function suggestionAlreadyKnown($list, $suggest)
- {
- foreach ($list as $item) {
- if ($item['suggestion'] === $suggest)
- return true;
- }
- return false;
- }
-}
-
diff --git a/lib/Service/SolrToolsService.php b/lib/Service/SolrToolsService.php
deleted file mode 100644
index 3360156..0000000
--- a/lib/Service/SolrToolsService.php
+++ /dev/null
@@ -1,539 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-use \OCA\Nextant\Service\SolrService;
-use \OCA\Nextant\Service\MiscService;
-use \OCA\Nextant\Items\ItemDocument;
-use \OCA\Nextant\Items\ItemError;
-
-/**
- *
- * Tools to manage Solr Core
- *
- * @author Maxence Lange
- *
- */
-class SolrToolsService
-{
-
- // const UPDATE_MAXIMUM_QUERYTIME = 2000;
-
- // const UPDATE_MAXIMUM_FILEPROCESS = 15;
-
- // const UPDATE_CHUNK_SIZE = 5;
- private $solrService;
-
- private $configService;
-
- private $miscService;
-
- private $output;
-
- /**
- *
- * @param SolrService $solrService
- * @param ConfigService $configService
- * @param MiscService $miscService
- */
- public function __construct(SolrService $solrService, ConfigService $configService, MiscService $miscService)
- {
- $this->solrService = $solrService;
- $this->configService = $configService;
- $this->miscService = $miscService;
- $this->output = null;
- }
-
- /**
- * Set debug
- *
- * @param boolean $debug
- */
- public function setDebug($debug = false)
- {
- $this->miscService->setDebug($debug);
- }
-
- /**
- * optimize the Solr Core
- *
- * @param ItemError $ierror
- * @return boolean|Solarium\Core\Query\Result
- */
- public function optimizeSolrIndex(&$ierror = 0)
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
- $client = $this->solrService->getClient();
-
- $update = $client->createUpdate();
- $update->addOptimize(true, true, 5);
- $result = $client->update($update);
-
- return $result;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * commit
- *
- * @param ItemError $ierror
- * @return boolean|Solarium\Core\Query\Result
- */
- public function commit($optimize = false, &$ierror = null)
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
- $client = $this->solrService->getClient();
-
- $update = $client->createUpdate();
- $update->addCommit();
- if ($optimize)
- $update->addOptimize(true, true, 5);
- $result = $client->update($update);
-
- return $result;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- *
- * @param ItemDocument $final
- * @param ItemDocument $current
- *
- * @return boolean
- */
- public function updateDocument(&$final, &$current, $update = true, &$ierror = '')
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
- if ($final == null || $current == null) {
- $ierror = new ItemError(SolrService::ERROR_DOCUMENT_NOT_EXIST);
- return false;
- }
-
- $modifs = false;
- if (! MiscService::arraysIdentical($final->getShare(), $current->getShare()))
- $modifs = true;
- if (! MiscService::arraysIdentical($final->getShareGroup(), $current->getShareGroup()))
- $modifs = true;
- if ($final->getPath() !== $current->getPath() && $final->getOwner() !== '__global')
- $modifs = true;
- if ($final->getOwner() !== $current->getOwner())
- $modifs = true;
- if ($final->isDeleted() != $current->isDeleted())
- $modifs = true;
- if (! $final->isExtractable() && $current->isExtracted())
- $modifs = true;
-
- if (! $modifs)
- return true;
-
- $final->needUpdate(true);
-
- if (! $update)
- return true;
-
- $client = $this->solrService->getClient();
- $query = $client->createUpdate();
-
- $doc = $query->createDocument();
- $doc->setKey('id', $final->getType() . '_' . $final->getId());
-
- if ($final->getOwner() !== $current->getOwner()) {
- $doc->setField('nextant_owner', $final->getOwner());
- $doc->setFieldModifier('nextant_owner', 'set');
- }
-
- if ($final->getPath() !== $current->getPath()) {
- $doc->setField('nextant_path', $final->getPath());
- $doc->setFieldModifier('nextant_path', 'set');
- }
-
- if (! MiscService::arraysIdentical($final->getShare(), $current->getShare())) {
- if (sizeof($final->getShare()) > 0) {
- $doc->setField('nextant_share', $final->getShare());
- $doc->setFieldModifier('nextant_share', 'set');
- } else {
- $doc->setField('nextant_share', array(
- ''
- ));
- $doc->setFieldModifier('nextant_share', 'set');
- }
- }
-
- if (! MiscService::arraysIdentical($final->getShareGroup(), $current->getShareGroup())) {
- if (sizeof($final->getShareGroup()) > 0) {
- $doc->setField('nextant_sharegroup', $final->getShareGroup());
- $doc->setFieldModifier('nextant_sharegroup', 'set');
- } else {
- $doc->setField('nextant_sharegroup', array(
- ''
- ));
- $doc->setFieldModifier('nextant_sharegroup', 'set');
- }
- }
-
- if ($final->isDeleted() != $current->isDeleted()) {
- $doc->setField('nextant_deleted', ($final->isDeleted()) ? 'true' : 'false');
- $doc->setFieldModifier('nextant_deleted', 'set');
- }
-
- if (! $final->isExtractable() && $current->isExtracted()) {
- $doc->setField('text', '');
- $doc->setFieldModifier('text', 'set');
- $doc->setField('nextant_extracted', false);
- $doc->setFieldModifier('nextant_extracted', 'set');
- }
-
- $query->addDocuments(array(
- $doc
- ));
- // $query->addCommit();
-
- if ($request = $client->update($query)) {
- // fixing solrDocs' data
- $current->setShare($final->getShare());
- $current->setShareGroup($final->getShareGroup());
- $current->setPath($final->getPath());
- $current->setOwner($final->getOwner());
- $current->deleted($final->isDeleted());
- $current->updated(true);
-
- $final->updated(true);
- return true;
- } else
- $ierror = new ItemError(SolrService::EXCEPTION_UPDATE_QUERY_FAILED);
- } catch (\Solarium\Exception\HttpException $ehe) {
- if ($ehe->getStatusMessage() == 'OK')
- $ierror = new ItemError(SolrService::EXCEPTION_UPDATE_FAILED, $ehe->getStatusMessage());
- else
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- $final->failedUpdate(true);
-
- return false;
- }
-
- /**
- * remove document by its id
- *
- * @param number $docid
- * @param ItemError $ierror
- * @return boolean
- */
- public function removeDocument(&$doc, &$ierror = '')
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- if ($doc == null)
- return false;
-
- try {
- $client = $this->solrService->getClient();
- $update = $client->createUpdate();
-
- $update->addDeleteById($doc->getType() . '_' . $doc->getId());
- // $update->addCommit();
-
- $ret = $client->update($update);
-
- if ($ret) {
- $doc->removed(true);
- return true;
- }
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * Check the mtime of a file and return if document is up to date
- *
- * @param ItemDocument $document
- * @param ItemDocument $solr
- * @param ItemError $ierror
- * @return boolean
- */
- public function isDocumentUpToDate(&$document, $solr = null, &$ierror = 0)
- {
- if (intval($document->getId()) == 0)
- return false;
-
- if ($solr != null && $solr != '') {
- if ($document->getMTime() === $solr->getMTime()) {
- $document->indexed(true);
-
- if (! $document->isExtractable())
- return true;
-
- if ($solr->isExtracted()) {
- $document->extracted(true);
- return true;
- }
-
- return false;
- } else
- if (! $document->isExtractable() && $this->configService->getAppValue('index_files_tree') === '1')
- return true;
- }
-
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
-
- $client = $this->solrService->getClient();
-
- $query = $client->createSelect();
- $query->setQuery('id:' . $document->getType() . '_' . $document->getId());
- $query->setFields(array(
- 'nextant_mtime',
- 'nextant_extracted'
- ));
-
- $resultset = $client->select($query);
-
- if ($resultset->getNumFound() != 1)
- return false;
-
- foreach ($resultset as $doc) {
- if ($document->getMTime() == $doc->nextant_mtime) {
- if ($doc->nextant_extracted)
- $document->extracted(true);
- $document->indexed(true);
- return true;
- }
- }
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * return information about the current status of the Solr servlet.
- *
- * @param ItemError $ierror
- * @return boolean|Solarium\Core\Query\Result
- */
- public function getInfoSystem(&$ierror = '')
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
- $client = $this->solrService->getAdminClient();
-
- $query = $client->createSelect();
- $request = $client->createRequest($query);
-
- $request->setHandler('admin/info/system');
-
- $response = $client->executeRequest($request);
- if ($response->getStatusCode() != 200)
- return false;
-
- $result = json_decode($response->getBody());
-
- return $result;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * return information about the current status of the solr core.
- *
- * @param ItemError $ierror
- * @return boolean|Solarium\Core\Query\Result
- */
- public function getInfoCore($complete = false, &$ierror = '')
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- try {
- $client = $this->solrService->getClient();
-
- $query = $client->createSelect();
- if (! $complete)
- $query->setFields(array(
- 'index'
- ));
-
- $request = $client->createRequest($query);
- $request->setHandler('admin/luke');
-
- $response = $client->executeRequest($request);
- if ($response->getStatusCode() != 200)
- return false;
-
- $result = json_decode($response->getBody());
-
- return $result;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- public function pick($type, $id)
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- $client = $this->solrService->getClient();
-
- try {
- $query = $client->createSelect();
- $helper = $query->getHelper();
-
- $query->setQuery('id:' . $type . '_' . $id);
- $resultset = $client->execute($query);
-
- return $resultset;
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-
- /**
- * Count document on Solr Core
- *
- * @param number $type
- * @param number $userId
- * @param ItemError $ierror
- * @return boolean
- */
- public function count($type = '', $userId = '', &$ierror = '')
- {
- if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) {
- $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN);
- return false;
- }
-
- $client = $this->solrService->getClient();
-
- if ($type != '')
- $type .= '_';
-
- try {
- $query = $client->createSelect();
- $helper = $query->getHelper();
-
- $query->setQuery('id:' . $type . '*');
- if ($userId != '')
- $query->createFilterQuery('owner')->setQuery('nextant_owner:' . $helper->escapePhrase($userId));
-
- $query->setRows(0);
- $resultset = $client->execute($query);
-
- return $resultset->getNumFound();
- } catch (\Solarium\Exception\HttpException $ehe) {
- $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage());
- } catch (\Solarium\Exception\RuntimeException $re) {
- $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage());
- } catch (\Solarium\Exception $e) {
- $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage());
- }
-
- return false;
- }
-}
- \ No newline at end of file
diff --git a/lib/Service/SourceService.php b/lib/Service/SourceService.php
deleted file mode 100644
index c73239b..0000000
--- a/lib/Service/SourceService.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Service;
-
-class SourceService
-{
-
- private $fileService;
-
- private $bookmarkService;
-
- private $newsService;
-
- private $miscService;
-
- public function __construct($fileService, $bookmarkService, $newsService, $miscService)
- {
- $this->fileService = $fileService;
- $this->bookmarkService = $bookmarkService;
- $this->newsService = $newsService;
- $this->miscService = $miscService;
- }
-
- public function file()
- {
- return $this->fileService;
- }
-
- public function bookmark()
- {
- return $this->bookmarkService;
- }
-
- public function news()
- {
- return $this->newsService;
- }
-} \ No newline at end of file
diff --git a/lib/Service/TestService.php b/lib/Service/TestService.php
deleted file mode 100644
index 4dca632..0000000
--- a/lib/Service/TestService.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace OCA\Nextant\Service;
-
-use OCA\Nextant\Items\ItemDocument;
-
-class TestService
-{
-
- public static function generateTestDocument($docid, $userid, $absolutePath, $path)
- {
- $doc = new ItemDocument(ItemDocument::TYPE_TEST, $docid);
- $doc->setAbsolutePath($absolutePath);
- $doc->setOwner($userid);
- $doc->setPath($path);
- $doc->setMTime(time());
-
- return $doc;
- }
-}
-
-
diff --git a/lib/admin.php b/lib/admin.php
deleted file mode 100644
index 2b80245..0000000
--- a/lib/admin.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant;
-
-$app = new \OCA\Nextant\AppInfo\Application();
-$app->registerSettingsAdmin();
-
-$response = $app->getContainer()
- ->query('SettingsController')
- ->index();
-
-return $response->render();
diff --git a/lib/search.php b/lib/search.php
deleted file mode 100644
index 4a3e98c..0000000
--- a/lib/search.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-namespace OCA\Nextant\Settings;
-
-$app = new \OCA\Nextant\AppInfo\Application();
-$app->registerSettingsAdmin();
-
-$response = $app->getContainer()
- ->query('SearchController')
- ->index();
-
-return $response->render();
diff --git a/phpunit.integration.xml b/phpunit.integration.xml
deleted file mode 100644
index 32cba8a..0000000
--- a/phpunit.integration.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<phpunit bootstrap="tests/bootstrap.php" colors="true">
- <testsuites>
- <testsuite name="integration">
- <directory>./tests/integration</directory>
- </testsuite>
- </testsuites>
-</phpunit> \ No newline at end of file
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 4eaab43..0000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<phpunit bootstrap="tests/bootstrap.php" colors="true">
- <testsuites>
- <testsuite name="unit">
- <directory>./tests/unit</directory>
- </testsuite>
- </testsuites>
-</phpunit> \ No newline at end of file
diff --git a/screenshots/admin.jpg b/screenshots/admin.jpg
deleted file mode 100644
index cf3dd5f..0000000
--- a/screenshots/admin.jpg
+++ /dev/null
Binary files differ
diff --git a/screenshots/displayResult.jpg b/screenshots/displayResult.jpg
deleted file mode 100644
index 0ed6ed4..0000000
--- a/screenshots/displayResult.jpg
+++ /dev/null
Binary files differ
diff --git a/screenshots/displaySuggestions.jpg b/screenshots/displaySuggestions.jpg
deleted file mode 100644
index 1a5893c..0000000
--- a/screenshots/displaySuggestions.jpg
+++ /dev/null
Binary files differ
diff --git a/screenshots/noindex1.png b/screenshots/noindex1.png
deleted file mode 100644
index c7caf47..0000000
--- a/screenshots/noindex1.png
+++ /dev/null
Binary files differ
diff --git a/screenshots/noindex2.png b/screenshots/noindex2.png
deleted file mode 100644
index 9c6b634..0000000
--- a/screenshots/noindex2.png
+++ /dev/null
Binary files differ
diff --git a/templates/settings.admin.php b/templates/settings.admin.php
deleted file mode 100644
index 2b5cb9f..0000000
--- a/templates/settings.admin.php
+++ /dev/null
@@ -1,413 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-script('nextant', 'settings.admin');
-style('nextant', 'admin');
-
-?>
-<div class="section" id="nextant">
- <h2><?php p($l->t('Nextant (Full-Text Search)')) ?></h2>
-
- <table>
- <tr>
- <td colspan="2"><em><?php p($l->t('Specify the address of your Solr, and the name of the core to use.')); ?>
- <br /> <a href="https://github.com/nextcloud/nextant/wiki"
- target="_blank">
- <?php p($l->t('If you do not have a Solr servlet running, installation-guides can be found on the wiki.')); ?></a>
- <br /> <a
- href="https://github.com/nextcloud/nextant/wiki/Admin-Interface">
- <?php p($l->t('You can also find more information there about this interface.')); ?></a></em></td>
- </tr>
- <tr valign="top">
- <td>
- <table style="width: 650px;">
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr class="nextant_admin_head">
- <td><div id="nextant_saving_settings"><?php p($l->t('Saving')); ?></div></td>
- <td class="nextant_admin_head"><?php p($l->t('Settings')); ?></td>
- </tr>
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Nextant version:')) ?></td>
- <td><div id="nextant_version"></div></td>
- </tr>
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Address of your Solr servlet:')) ?></td>
- <td><input type="text" name="solr_url" id="solr_url" value=""
- style="width: 250px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left"><?php p($l->t('Core:')) ?></td>
- <td><input type="text" id="solr_core" value=""
- style="width: 250px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left"><?php p($l->t('Timeout (in seconds):')) ?></td>
- <td><input type="text" id="solr_timeout" value=""
- style="width: 100px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td></td>
- <td>
- <button type="button" id="nextant_apply" style="width: 264px"><?php p($l->t('Test and Save')) ?></button>
- </td>
- </tr>
- </table>
- <div id="nextant_suboptions">
- <table style="width: 650px;">
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr class="nextant_admin_head" id="solr_index_files_cont">
- <td><div id="nextant_saving_files"> <?php p($l->t('Saving')); ?></div></td>
- <td colspan="2" class="nextant_admin_head"><input type="checkbox"
- name="solr_index_files" id="solr_index_files" value="1"
- style="margin: 5px; margin-right: 15px;"><?php p($l->t('Indexing Files')); ?></td>
- </tr>
- </table>
- <div id="solr_sub_files">
- <table style="width: 650px;">
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Maximum File Size (Mb):')) ?></td>
- <td><input type="text" id="solr_index_files_max_size"
- style="width: 100px;"></td>
- <td style="width: 60px; padding-right: 10px;">[<span
- style="font-size: 12px;" id="solr_switch_filters"><?php p($l->t('Edit your filters')); ?></span>]
- </td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index Files Tree:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_tree" id="solr_index_files_tree"
- value="1" style="margin: 10px;"> <span
- id="solr_index_files_nextant_only_span"><input type="checkbox"
- name="solr_index_files_nextant_only"
- id="solr_index_files_nextant_only" value="1"
- style="margin: 10px;"><?php p($l->t('Disable default search from Files')); ?></span>
- </td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index File Trash:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_trash" id="solr_index_files_trash"
- value="1" style="margin: 10px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index Public Links:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_sharelink"
- id="solr_index_files_sharelink" value="1" style="margin: 10px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index Federated Shares:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_federated"
- id="solr_index_files_federated" value="1" style="margin: 10px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index External Storages:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_external" id="solr_index_files_external"
- value="1" style="margin: 10px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Index Encrypted Files:')) ?></td>
- <td colspan="2"><input type="checkbox"
- name="solr_index_files_encrypted"
- id="solr_index_files_encrypted" value="1" style="margin: 10px;"></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Last index:')) ?></td>
- <td colspan="2"><div id="solr_index_files_last"></div></td>
- </tr>
-
- </table>
- </div>
-
- <table style="width: 650px;">
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr class="nextant_admin_head" id="solr_index_bookmarks_cont">
- <td><div id="nextant_saving_bookmarks"><?php p($l->t('Saving')); ?></div></td>
- <td class="nextant_admin_head"><input type="checkbox"
- name="solr_index_bookmarks" id="solr_index_bookmarks" value="1"
- style="margin: 5px; margin-right: 15px;"><?php p($l->t('Indexing Bookmarks')); ?></td>
- </tr>
- </table>
-
- <div id="solr_sub_bookmarks">
- <table style="width: 650px;">
- <tr style="height: 30px;">
- <td colspan="2">
- <div id="nextant_bookmarks_appdisabled">
- <?php p($l->t('The App Bookmarks is not installed/enabled.')); ?>
- </div>
- <div id="nextant_bookmarks_appenabled">
- <?php p($l->t('"App Bookmarks" enabled, your bookmarks will be indexed.')); ?>
- </div>
- </td>
- </tr>
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Last index:')) ?></td>
- <td><div id="solr_index_bookmarks_last"></div></td>
- </tr>
-
- </table>
- </div>
-
- <table style="width: 650px;">
-
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr class="nextant_admin_head">
- <td><div id="nextant_saving_status"><?php p($l->t('Saving')); ?></div>
- <div id="nextant_saving_check"><?php p($l->t('Checking')); ?></div></td>
- <td class="nextant_admin_head"><?php p($l->t('Nextant Status')); ?></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Resource Level:')); ?>
- </td>
- <td colspan="2"><select name="solr_resource_level"
- id="solr_resource_level" style="width: 200px">
- <option value="5"><?php p($l->t('Higher performance')); ?></option>
- <option value="4"><?php p($l->t('High performance')); ?></option>
- <!-- <option value="3"><?php p($l->t('Medium performance')); ?></option> -->
- <option value="2"><?php p($l->t('Low performance')); ?></option>
- <option value="1"><?php p($l->t('Lower performance')); ?></option>
- </select></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Live Index:')); ?>
- </td>
- <td colspan="2"><select id="solr_index_live" style="width: 200px">
- <option value="0"><?php p($l->t('Disabled')); ?></option>
- <!-- <option value="1"><?php p($l->t('Using Semaphore')); ?></option> -->
- <option value="2"><?php p($l->t('Using Database')); ?></option>
- </select> <!-- <input type="text" id="solr_index_live_queuekey"
- style="width: 100px; font-size: 12px;" /> --></td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left" style="text-valign: top;">
- <?php p($l->t('Minimum Background Index delay:')) ?></td>
- <td><input type="text" name="solr_index_delay_min"
- id="solr_index_delay_min" value="2"
- style="width: 50px; margin-right: 10px;" /><?php p($l->t('hours')); ?>
- </td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left" style="text-valign: top;">
- <?php p($l->t('Maximum Background Index delay:')) ?></td>
- <td><input type="text" name="solr_index_delay_max"
- id="solr_index_delay_max" value="2"
- style="width: 50px; margin-right: 10px;" /><?php p($l->t('days')); ?>
- </td>
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Nextcloud Cron:')); ?>
- </td>
- <td colspan="2"><input type="checkbox" name="solr_use_cron"
- id="solr_use_cron" value="1" style="margin: 10px;" />
-
- </tr>
-
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Number of documents:')) ?></td>
- <td><div id="solr_current_docs"></div></td>
- </tr>
- <tr style="height: 30px;">
- <td class="nextant_admin_left">
- <?php p($l->t('Number of segments:')) ?></td>
- <td><div id="solr_current_segments"></div></td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr style="height: 30px;">
-
- <td></td>
- <td>
- <div id="nextant_first_index"
- style="width: 270px; font-size: 12px; white-space: normal;">
- <i>
- <?php p($l->t('it is recommended to do the very first indexing of your files using the ./occ nextant:index command.')); ?>
- <?php p($l->t('However, you can force it to be started as a background process.')); ?>
- </i> <br />
- <button type="button" id="nextant_force_first_index"
- style="width: 270px"><?php p($l->t('Force first index as a cronjob')) ?></button>
- </div>
- <button type="button" id="nextant_force_index"
- style="width: 270px"><?php p($l->t('Force index')) ?></button>
- <div id="nextant_index_scheduled">
- <i><?php p($l->t('Indexing is scheduled within the next few hours (Cron)')); ?></i>
- </div>
- <div id="nextant_index_inprogress">
- <i><?php p($l->t('Indexing in progress')); ?></i>
- </div>
- </td>
- </tr>
-
- </table>
- </div>
- </td>
- <td
- style="padding-left: 30px; padding-top: 40px; vertical-align: top; position: relative;">
- <div id="nextant-display" class="nextant-box">
- <div id="ping" class="nextant-display-line">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="schema" class="nextant-display-line" style="top: 40px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="extract" class="nextant-display-line" style="top: 70px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="update" class="nextant-display-line" style="top: 100px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="search" class="nextant-display-line" style="top: 130px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="delete" class="nextant-display-line" style="top: 160px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- <div id="save" class="nextant-display-line" style="top: 200px;">
- <img id="icon_check" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'check.png')); ?>" />
- <img id="icon_fail" class="nextant_display_icon"
- src="<?php print_unescaped(OCP\image_path('nextant', 'fail.png')); ?>" />
- <div id="text" class="nextant_display_text"></div>
- </div>
-
- </div>
-
- <div id="nextant-filters" class="nextant-box">
-
- <div id="nextant_saving_files_filters"
- style="position: absolute; top: 10px; right: 25px;"><?php p($l->t('Saving')); ?></div>
-
- <div class="solr_filters_item_large solr_filters_title"><?php p($l->t('Type of files to extract')); ?></div>
-
- <div class="solr_filters_item_large">
- <input type="checkbox" name="solr_filters_text"
- id="solr_filters_text" value="1" style="margin: 10px;"> <?php p($l->t('Text File (Text, HTML, Subtitles, Source Codeā€¦)')); ?>
- </div>
- <div class="solr_filters_item">
- <input type="checkbox" name="solr_filters_pdf"
- id="solr_filters_pdf" value="1" style="margin: 10px;"> <?php p($l->t('EPUB / PDF / RTF')); ?>
- </div>
- <div class="solr_filters_item">
- <input type="checkbox" name="solr_filters_office"
- id="solr_filters_office" value="1" style="margin: 10px;"> <?php p($l->t('Office Documents')); ?>
- </div>
- <div class="solr_filters_item">
- <input type="checkbox" name="solr_filters_image"
- id="solr_filters_image" value="1" style="margin: 10px;"> <?php p($l->t('Image (JPEG, TIFF)')); ?>
- </div>
- <div class="solr_filters_item">
- <input type="checkbox" name="solr_filters_audio"
- id="solr_filters_audio" value="1" style="margin: 10px;"> <?php p($l->t('Audio File (MP3, FLAC)')); ?>
- </div>
-
- <div class="solr_filters_item_large solr_filters_title"
- style="margin-top: 15px;"><?php p($l->t('Extensions you wish to ignore (.java .xml)')); ?></div>
- <div class="solr_filters_item_large">
- <textarea name="" style="width: 435px; height: 75px;"
- id="solr_filters_extensions"></textarea>
- </div>
-
- </div>
-
- </td>
- </tr>
-
- </table>
-
-</div>
-
-
diff --git a/test.jpg b/test.jpg
deleted file mode 100644
index d2b38a1..0000000
--- a/test.jpg
+++ /dev/null
Binary files differ
diff --git a/test.pdf b/test.pdf
deleted file mode 100644
index 004e288..0000000
--- a/test.pdf
+++ /dev/null
Binary files differ
diff --git a/test.tif b/test.tif
deleted file mode 100644
index e9ea541..0000000
--- a/test.tif
+++ /dev/null
Binary files differ
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
deleted file mode 100644
index 573a246..0000000
--- a/tests/bootstrap.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-require_once __DIR__ . '/../../../tests/bootstrap.php';
-require_once __DIR__ . '/../appinfo/autoload.php'; \ No newline at end of file
diff --git a/tests/integration/AppTest.php b/tests/integration/AppTest.php
deleted file mode 100644
index 3da5488..0000000
--- a/tests/integration/AppTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- * Nextcloud - nextant
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Maxence Lange <maxence@pontapreta.net>
- * @copyright Maxence Lange 2016
- * @license GNU AGPL version 3 or any later version
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-use OCP\AppFramework\App;
-use Test\TestCase;
-
-/**
- * This test shows how to make a small Integration Test.
- * Query your class
- * directly from the container, only pass in mocks if needed and run your tests
- * against the database
- */
-class AppTest extends TestCase
-{
-
- private $container;
-
- public function setUp()
- {
- parent::setUp();
- $app = new App('nextant');
- $this->container = $app->getContainer();
- }
-
- public function testAppconfigured()
- {
- $appManager = $this->container->query('OCP\App\IAppManager');
- $this->assertTrue($appManager->isInstalled('nextant'));
- }
-} \ No newline at end of file