diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..f8091f1 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +SHEET_ID= diff --git a/.gitignore b/.gitignore index 1739dbb..00e2685 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ next-env.d.ts .env .vscode +key.json \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/package.json b/package.json index 50caff2..73a25a6 100644 --- a/package.json +++ b/package.json @@ -10,16 +10,15 @@ "format": "prettier --write ." }, "dependencies": { - "@types/parse": "^2.18.18", - "dotenv": "^16.0.2", + "googleapis": "^109.0.1", "next": "13.0.2", - "parse": "^3.4.4", "react": "18.2.0", "react-dom": "18.2.0", "react-morphing-modal": "^0.2.2" }, "devDependencies": { - "@types/node": "18.7.23", + "@types/mime-types": "^2.1.1", + "@types/node": "^18.11.9", "@types/react": "18.0.21", "@types/react-dom": "18.0.6", "@typescript-eslint/eslint-plugin": "^5.38.1", @@ -30,6 +29,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.31.8", + "mime-types": "^2.1.35", "postcss": "^8.4.16", "prettier": "^2.7.1", "tailwindcss": "^3.1.8", diff --git a/public/data/cities.json b/public/data/cities.json new file mode 100644 index 0000000..3f0ff88 --- /dev/null +++ b/public/data/cities.json @@ -0,0 +1,226 @@ +[ + { + "id": "fardis", + "name": "Fardis", + "name_persian": "فردیس", + "province_id": "alborz", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "saqez", + "name": "Saqez", + "name_persian": "سقز", + "province_id": "kurdistan", + "updated_at": "11/26/2022, 11:05:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "khorramabad", + "name": "Khorramabad", + "name_persian": "خرم آباد", + "province_id": "lorestan", + "updated_at": "11/26/2022, 11:05:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "karaj", + "name": "Karaj", + "name_persian": "کرج", + "province_id": "alborz", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "amol", + "name": "Amol", + "name_persian": "آمل", + "province_id": "mazandaran", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "mashhad", + "name": "Mashhad", + "name_persian": "مشهد", + "province_id": "khorasan-razavi", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "kermanshah", + "name": "Kermanshah", + "name_persian": "کرمانشاه", + "province_id": "kermanshah", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "nowshahr", + "name": "Nowshahr", + "name_persian": "نوشهر", + "province_id": "mazandaran", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "fouladshahr", + "name": "Fouladshahr", + "name_persian": "فولادشهر", + "province_id": "isfahan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "pakdasht", + "name": "Pakdasht", + "name_persian": "پاکدشت", + "province_id": "tehran", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "salas-e-babajani", + "name": "Salas-e Babajani", + "name_persian": "ثلاث باباجانی", + "province_id": "kermanshah", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "rasht", + "name": "Rasht", + "name_persian": "رشت", + "province_id": "gilan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "zahedan", + "name": "Zahedan", + "name_persian": "زاهدان", + "province_id": "sistan-and-baluchestan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "bukan", + "name": "Bukan", + "name_persian": "بوکان", + "province_id": "azerbaijan-west", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "ardabil", + "name": "Ardabil", + "name_persian": "اردبیل", + "province_id": "ardabil", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "oshnavieh", + "name": "Oshnavieh", + "name_persian": "اشنویه", + "province_id": "azerbaijan-west", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "tehran", + "name": "Tehran", + "name_persian": "تهران", + "province_id": "tehran", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "sanandaj", + "name": "Sanandaj", + "name_persian": "سنندج", + "province_id": "kurdistan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "lavasan", + "name": "Lavasan", + "name_persian": "لواسان", + "province_id": "tehran", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "garmsar", + "name": "Garmsar", + "name_persian": "گرمسار", + "province_id": "semnan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "mahdasht-karaj", + "name": "Mahdasht Karaj", + "name_persian": "ماهدشت کرج", + "province_id": "alborz", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "Ahvaz", + "name": "Ahvaz", + "name_persian": "اهواز", + "province_id": "khuzestan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "urmia", + "name": "Urmia", + "name_persian": "ارومیه", + "province_id": "azerbaijan-west", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "langarud ", + "name": "Langarud ", + "name_persian": "لنگرود", + "province_id": "gilan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "balou-village", + "name": "Urmia (Balou village)", + "name_persian": "روستای بالو ارومیه", + "province_id": "azerbaijan-west", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "zanjan", + "name": "Zanjan", + "name_persian": "زنجان", + "province_id": "zanjan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "piranshahr", + "name": "Piranshahr", + "name_persian": "پیرانشهر", + "province_id": "azerbaijan-west", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + }, + { + "id": "iranshahr", + "name": "Iranshahr", + "name_persian": "ایرانشهر", + "province_id": "sistan-and-baluchestan", + "updated_at": "11/26/2022, 11:04:45 PM", + "uploaded_at": "11/27/2022, 12:42:22 AM" + } +] \ No newline at end of file diff --git a/public/data/cities.zip.json b/public/data/cities.zip.json new file mode 100644 index 0000000..57bcd48 --- /dev/null +++ b/public/data/cities.zip.json @@ -0,0 +1 @@ +[{"id":"fardis","name":"Fardis","name_persian":"فردیس","province_id":"alborz","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"saqez","name":"Saqez","name_persian":"سقز","province_id":"kurdistan","updated_at":"11/26/2022, 11:05:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"khorramabad","name":"Khorramabad","name_persian":"خرم آباد","province_id":"lorestan","updated_at":"11/26/2022, 11:05:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"karaj","name":"Karaj","name_persian":"کرج","province_id":"alborz","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"amol","name":"Amol","name_persian":"آمل","province_id":"mazandaran","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"mashhad","name":"Mashhad","name_persian":"مشهد","province_id":"khorasan-razavi","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"kermanshah","name":"Kermanshah","name_persian":"کرمانشاه","province_id":"kermanshah","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"nowshahr","name":"Nowshahr","name_persian":"نوشهر","province_id":"mazandaran","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"fouladshahr","name":"Fouladshahr","name_persian":"فولادشهر","province_id":"isfahan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"pakdasht","name":"Pakdasht","name_persian":"پاکدشت","province_id":"tehran","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"salas-e-babajani","name":"Salas-e Babajani","name_persian":"ثلاث باباجانی","province_id":"kermanshah","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"rasht","name":"Rasht","name_persian":"رشت","province_id":"gilan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"zahedan","name":"Zahedan","name_persian":"زاهدان","province_id":"sistan-and-baluchestan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"bukan","name":"Bukan","name_persian":"بوکان","province_id":"azerbaijan-west","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"ardabil","name":"Ardabil","name_persian":"اردبیل","province_id":"ardabil","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"oshnavieh","name":"Oshnavieh","name_persian":"اشنویه","province_id":"azerbaijan-west","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"tehran","name":"Tehran","name_persian":"تهران","province_id":"tehran","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"sanandaj","name":"Sanandaj","name_persian":"سنندج","province_id":"kurdistan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"lavasan","name":"Lavasan","name_persian":"لواسان","province_id":"tehran","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"garmsar","name":"Garmsar","name_persian":"گرمسار","province_id":"semnan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"mahdasht-karaj","name":"Mahdasht Karaj","name_persian":"ماهدشت کرج","province_id":"alborz","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"Ahvaz","name":"Ahvaz","name_persian":"اهواز","province_id":"khuzestan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"urmia","name":"Urmia","name_persian":"ارومیه","province_id":"azerbaijan-west","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"langarud ","name":"Langarud ","name_persian":"لنگرود","province_id":"gilan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"balou-village","name":"Urmia (Balou village)","name_persian":"روستای بالو ارومیه","province_id":"azerbaijan-west","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"zanjan","name":"Zanjan","name_persian":"زنجان","province_id":"zanjan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"piranshahr","name":"Piranshahr","name_persian":"پیرانشهر","province_id":"azerbaijan-west","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"},{"id":"iranshahr","name":"Iranshahr","name_persian":"ایرانشهر","province_id":"sistan-and-baluchestan","updated_at":"11/26/2022, 11:04:45 PM","uploaded_at":"11/27/2022, 12:42:22 AM"}] \ No newline at end of file diff --git a/public/data/people.json b/public/data/people.json new file mode 100644 index 0000000..d666b3e --- /dev/null +++ b/public/data/people.json @@ -0,0 +1,62 @@ +[ + { + "media": { + "CNN: Clashes in Iran as thousands gather at Mahsa Amini’s grave, 40 days after her death": "https://edition.cnn.com/2022/10/26/middleeast/iran-clashes-mahsa-amini-grave-intl/index.html", + "DW": "https://www.dw.com/en/jina-mahsa-amini/t-63431146" + }, + "hashtags": [ + "#MahsaAmini", + "#مهسا_امینی" + ], + "id": "ma2", + "references": { + "Wikipedia (en)": "https://en.wikipedia.org/wiki/Death_of_Mahsa_Amini", + "Wikipedia (fa)": "https://fa.wikipedia.org/wiki/%DA%A9%D8%B4%D8%AA%D9%87%E2%80%8C%D8%B4%D8%AF%D9%86_%D9%85%D9%87%D8%B3%D8%A7_%D8%A7%D9%85%DB%8C%D9%86%DB%8C" + }, + "description": [ + "On 16 September 2022, a 22-year-old Iranian woman named Mahsa Amini, also known as Jina Amini, died in a hospital in Tehran, Iran under suspicious circumstances. The Guidance Patrol, the religious morality police of Iran's government, arrested Amini for not wearing the hijab in accordance with government standards." + ], + "isValidated": true, + "age": "22", + "name": "Mahsa1", + "city": "saqez", + "date": "September 10, 2022", + "description_fa": [ + "کشتهشدن مهسا امینی رویدادی در جمهوری اسلامی ایران است که باعث اعتراضات و واکنشهای گستردهای در ایران و جهان شد. مهسا امینی، دختر ۲۲ ساله ایرانی بود که در بازداشت پلیس ایران جان باخت و نامش در شبکههای اجتماعی میلیونها بار تکرار شد و هشتگ مهسا امینی پرتکرارترین هشتگ فضای تویتر شد." + ], + "family": "Amini", + "reason": "Detained and beaten by \"Morality Police\" and died in the hospital ", + "birthdate": "09/20/2000", + "updated_at": "11/27/2022, 2:33:47 PM", + "uploaded_at": "11/27/2022, 2:33:47 PM", + "name_persian": "مهسا (ژینا) ", + "family_persian": "امینی", + "image": "/images/m/ma2--1QN4myKLglwhYG55G4j3JwGb0897rBXZz.png" + }, + { + "media": { + "CNN: What really happened to Nika Shahkarami? Witnesses to her final hours cast doubt on Iran’s story": "https://edition.cnn.com/2022/10/27/middleeast/iran-nika-shahkarami-investigation-intl-cmd/index.html" + }, + "hashtags": [ + "#NikaShakarami", + " #نیکا_شاکرمی" + ], + "id": "ns3", + "references": {}, + "description": [], + "isValidated": false, + "age": "16", + "name": "Nika1", + "city": "khorramabad", + "date": "September 20, 2022", + "description_fa": [], + "family": "Shakarami", + "reason": "Detained by security force and physically assulted and killed ", + "birthdate": "", + "updated_at": "11/27/2022, 2:33:48 PM", + "uploaded_at": "11/27/2022, 2:33:48 PM", + "name_persian": "نیکا ", + "family_persian": "شاکرمی", + "image": "/images/n/ns3--1vz2_JZ1bdgwwpnRm-LZDnh-Bvt2CiLXS.webp" + } +] \ No newline at end of file diff --git a/public/data/people.zip.json b/public/data/people.zip.json new file mode 100644 index 0000000..9bbd05a --- /dev/null +++ b/public/data/people.zip.json @@ -0,0 +1 @@ +[{"media":{"CNN: Clashes in Iran as thousands gather at Mahsa Amini’s grave, 40 days after her death":"https://edition.cnn.com/2022/10/26/middleeast/iran-clashes-mahsa-amini-grave-intl/index.html","DW":"https://www.dw.com/en/jina-mahsa-amini/t-63431146"},"hashtags":["#MahsaAmini","#مهسا_امینی"],"id":"ma2","references":{"Wikipedia (en)":"https://en.wikipedia.org/wiki/Death_of_Mahsa_Amini","Wikipedia (fa)":"https://fa.wikipedia.org/wiki/%DA%A9%D8%B4%D8%AA%D9%87%E2%80%8C%D8%B4%D8%AF%D9%86_%D9%85%D9%87%D8%B3%D8%A7_%D8%A7%D9%85%DB%8C%D9%86%DB%8C"},"description":["On 16 September 2022, a 22-year-old Iranian woman named Mahsa Amini, also known as Jina Amini, died in a hospital in Tehran, Iran under suspicious circumstances. The Guidance Patrol, the religious morality police of Iran's government, arrested Amini for not wearing the hijab in accordance with government standards."],"isValidated":true,"age":"22","name":"Mahsa1","city":"saqez","date":"September 10, 2022","description_fa":["کشتهشدن مهسا امینی رویدادی در جمهوری اسلامی ایران است که باعث اعتراضات و واکنشهای گستردهای در ایران و جهان شد. مهسا امینی، دختر ۲۲ ساله ایرانی بود که در بازداشت پلیس ایران جان باخت و نامش در شبکههای اجتماعی میلیونها بار تکرار شد و هشتگ مهسا امینی پرتکرارترین هشتگ فضای تویتر شد."],"family":"Amini","reason":"Detained and beaten by \"Morality Police\" and died in the hospital ","birthdate":"09/20/2000","updated_at":"11/27/2022, 2:33:47 PM","uploaded_at":"11/27/2022, 2:33:47 PM","name_persian":"مهسا (ژینا) ","family_persian":"امینی","image":"/images/m/ma2--1QN4myKLglwhYG55G4j3JwGb0897rBXZz.png"},{"media":{"CNN: What really happened to Nika Shahkarami? Witnesses to her final hours cast doubt on Iran’s story\n":"https://edition.cnn.com/2022/10/27/middleeast/iran-nika-shahkarami-investigation-intl-cmd/index.html"},"hashtags":["#NikaShakarami"," #نیکا_شاکرمی"],"id":"ns3","references":{},"description":[],"isValidated":false,"age":"16","name":"Nika1","city":"khorramabad","date":"September 20, 2022","description_fa":[],"family":"Shakarami","reason":"Detained by security force and physically assulted and killed ","birthdate":"","updated_at":"11/27/2022, 2:33:48 PM","uploaded_at":"11/27/2022, 2:33:48 PM","name_persian":"نیکا ","family_persian":"شاکرمی","image":"/images/n/ns3--1vz2_JZ1bdgwwpnRm-LZDnh-Bvt2CiLXS.webp"}] \ No newline at end of file diff --git a/public/data/provinces.json b/public/data/provinces.json new file mode 100644 index 0000000..3971436 --- /dev/null +++ b/public/data/provinces.json @@ -0,0 +1,219 @@ +[ + { + "id": "alborz", + "name": "Alborz", + "name_persian": "البرز", + "updated_at": "11/26/2022, 8:53:00 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "ardabil", + "name": "Ardabil", + "name_persian": "اردبیل", + "updated_at": "11/26/2022, 8:57:58 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "azerbaijan-east", + "name": "Azerbaijan, East", + "name_persian": "آذربایجان شرقی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "azerbaijan-west", + "name": "Azerbaijan, West", + "name_persian": "آذربایجان غربی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "bushehr", + "name": "Bushehr", + "name_persian": "بوشهر", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "chahar-mahaal-and-bakhtiari", + "name": "Chahar Mahaal and Bakhtiari", + "name_persian": "چهارمحال و بختیاری", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "fars", + "name": "Fars", + "name_persian": "فارس", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "gilan", + "name": "Gilan", + "name_persian": "گیلان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "golestan", + "name": "Golestan", + "name_persian": "گلستان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "hamadan", + "name": "Hamadan", + "name_persian": "همدان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "hormozgan", + "name": "Hormozgān", + "name_persian": "هرمزگان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "ilam", + "name": "Ilam", + "name_persian": "ایلام", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "isfahan", + "name": "Isfahan", + "name_persian": "اصفهان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "kerman", + "name": "Kerman", + "name_persian": "کرمان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "kermanshah", + "name": "Kermanshah", + "name_persian": "کرمانشاه", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "khorasan-north", + "name": "Khorasan, North", + "name_persian": "خراسان شمالی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "khorasan-razavi", + "name": "Khorasan, Razavi", + "name_persian": "خراسان رضوی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "khorasan-south", + "name": "Khorasan, South", + "name_persian": "خراسان جنوبی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "khuzestan", + "name": "Khuzestan", + "name_persian": "خوزستان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "kohgiluyeh-and-boyer-ahmad", + "name": "Kohgiluyeh and Boyer-Ahmad", + "name_persian": "کهکیلویه و بویراحمد", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "kurdistan", + "name": "Kurdistan", + "name_persian": "کردستان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "lorestan", + "name": "Lorestan", + "name_persian": "لرستان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "markazi", + "name": "Markazi", + "name_persian": "مرکزی", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "mazandaran", + "name": "Mazandaran", + "name_persian": "مازندران", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "qazvin", + "name": "Qazvin", + "name_persian": "قزوین", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "qom", + "name": "Qom", + "name_persian": "قم", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "semnan", + "name": "Semnan", + "name_persian": "سمنان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "sistan-and-baluchestan", + "name": "Sistan and Baluchestan", + "name_persian": "سیستان و بلوچستان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "tehran", + "name": "Tehran", + "name_persian": "تهران", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "yazd", + "name": "Yazd", + "name_persian": "یزد", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + }, + { + "id": "zanjan", + "name": "Zanjan", + "name_persian": "زنجان", + "updated_at": "11/26/2022, 9:01:28 PM", + "uploaded_at": "11/27/2022, 1:03:56 AM" + } +] \ No newline at end of file diff --git a/public/data/provinces.zip.json b/public/data/provinces.zip.json new file mode 100644 index 0000000..be13954 --- /dev/null +++ b/public/data/provinces.zip.json @@ -0,0 +1 @@ +[{"id":"alborz","name":"Alborz","name_persian":"البرز","updated_at":"11/26/2022, 8:53:00 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"ardabil","name":"Ardabil","name_persian":"اردبیل","updated_at":"11/26/2022, 8:57:58 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"azerbaijan-east","name":"Azerbaijan, East","name_persian":"آذربایجان شرقی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"azerbaijan-west","name":"Azerbaijan, West","name_persian":"آذربایجان غربی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"bushehr","name":"Bushehr","name_persian":"بوشهر","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"chahar-mahaal-and-bakhtiari","name":"Chahar Mahaal and Bakhtiari","name_persian":"چهارمحال و بختیاری","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"fars","name":"Fars","name_persian":"فارس","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"gilan","name":"Gilan","name_persian":"گیلان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"golestan","name":"Golestan","name_persian":"گلستان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"hamadan","name":"Hamadan","name_persian":"همدان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"hormozgan","name":"Hormozgān","name_persian":"هرمزگان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"ilam","name":"Ilam","name_persian":"ایلام","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"isfahan","name":"Isfahan","name_persian":"اصفهان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"kerman","name":"Kerman","name_persian":"کرمان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"kermanshah","name":"Kermanshah","name_persian":"کرمانشاه","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"khorasan-north","name":"Khorasan, North","name_persian":"خراسان شمالی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"khorasan-razavi","name":"Khorasan, Razavi","name_persian":"خراسان رضوی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"khorasan-south","name":"Khorasan, South","name_persian":"خراسان جنوبی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"khuzestan","name":"Khuzestan","name_persian":"خوزستان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"kohgiluyeh-and-boyer-ahmad","name":"Kohgiluyeh and Boyer-Ahmad","name_persian":"کهکیلویه و بویراحمد","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"kurdistan","name":"Kurdistan","name_persian":"کردستان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"lorestan","name":"Lorestan","name_persian":"لرستان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"markazi","name":"Markazi","name_persian":"مرکزی","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"mazandaran","name":"Mazandaran","name_persian":"مازندران","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"qazvin","name":"Qazvin","name_persian":"قزوین","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"qom","name":"Qom","name_persian":"قم","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"semnan","name":"Semnan","name_persian":"سمنان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"sistan-and-baluchestan","name":"Sistan and Baluchestan","name_persian":"سیستان و بلوچستان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"tehran","name":"Tehran","name_persian":"تهران","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"yazd","name":"Yazd","name_persian":"یزد","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"},{"id":"zanjan","name":"Zanjan","name_persian":"زنجان","updated_at":"11/26/2022, 9:01:28 PM","uploaded_at":"11/27/2022, 1:03:56 AM"}] \ No newline at end of file diff --git a/public/images/a/Abdollah-Mahmoudpour.jpeg b/public/images/a/Abdollah-Mahmoudpour.jpeg deleted file mode 100644 index c99980f..0000000 Binary files a/public/images/a/Abdollah-Mahmoudpour.jpeg and /dev/null differ diff --git a/public/images/h/Hannaneh-Kia.jpeg b/public/images/h/Hannaneh-Kia.jpeg deleted file mode 100644 index a8716cd..0000000 Binary files a/public/images/h/Hannaneh-Kia.jpeg and /dev/null differ diff --git a/public/images/j/Javad-Heydari.jpeg b/public/images/j/Javad-Heydari.jpeg deleted file mode 100644 index 4bcd526..0000000 Binary files a/public/images/j/Javad-Heydari.jpeg and /dev/null differ diff --git a/public/images/m/Milan-Haghighi.jpeg b/public/images/m/Milan-Haghighi.jpeg deleted file mode 100644 index 1d82bfb..0000000 Binary files a/public/images/m/Milan-Haghighi.jpeg and /dev/null differ diff --git a/public/images/m/Mohammad-Farmani.jpeg b/public/images/m/Mohammad-Farmani.jpeg deleted file mode 100644 index 816a328..0000000 Binary files a/public/images/m/Mohammad-Farmani.jpeg and /dev/null differ diff --git a/public/images/m/mahsa-amini.png b/public/images/m/ma2--1QN4myKLglwhYG55G4j3JwGb0897rBXZz.png similarity index 100% rename from public/images/m/mahsa-amini.png rename to public/images/m/ma2--1QN4myKLglwhYG55G4j3JwGb0897rBXZz.png diff --git a/public/images/n/ns3--1vz2_JZ1bdgwwpnRm-LZDnh-Bvt2CiLXS.webp b/public/images/n/ns3--1vz2_JZ1bdgwwpnRm-LZDnh-Bvt2CiLXS.webp new file mode 100644 index 0000000..aa77075 Binary files /dev/null and b/public/images/n/ns3--1vz2_JZ1bdgwwpnRm-LZDnh-Bvt2CiLXS.webp differ diff --git a/public/images/person.jpeg b/public/images/person.jpeg new file mode 100644 index 0000000..9e24aee Binary files /dev/null and b/public/images/person.jpeg differ diff --git a/public/images/r/Rouzbeh-Khademian.jpeg b/public/images/r/Rouzbeh-Khademian.jpeg deleted file mode 100644 index 7f99d47..0000000 Binary files a/public/images/r/Rouzbeh-Khademian.jpeg and /dev/null differ diff --git a/public/images/z/Zakaria-Khial.jpeg b/public/images/z/Zakaria-Khial.jpeg deleted file mode 100644 index 383d534..0000000 Binary files a/public/images/z/Zakaria-Khial.jpeg and /dev/null differ diff --git a/src/components/Lightbox/index.tsx b/src/components/Lightbox/index.tsx deleted file mode 100644 index a963278..0000000 --- a/src/components/Lightbox/index.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useState } from 'react'; - -import Image from 'components/MyImage'; - -type LightBoxType = { - src: string; - alt: string; - zIndex?: number; - onClose: () => void; -}; - -const LightBox = ({ src, alt, zIndex = 100, onClose }: LightBoxType) => { - const [isOpen, setIsOpen] = useState(true); - - const toggleIsOpen = () => { - if (isOpen) { - onClose(); - } - - setIsOpen(!isOpen); - }; - - return ( -