mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-11-08 04:43:03 +00:00
packages update
This commit is contained in:
1 parent
91212eaa3a
commit
e60eb68b67
235 files changed
+681
-109
No files matched your search
+5
-3
@@ -1,6 +1,8 @@
|
|||||||
api: "TelegramBotAPI-extensions-api/**"
|
api: "TelegramBotAPI-api/**"
|
||||||
utils: "TelegramBotAPI-extensions-utils/**"
|
utils: "TelegramBotAPI-utils/**"
|
||||||
core: "TelegramBotAPI/**" # currently not work
|
behaviour-builder: "TelegramBotAPI-behaviour_builder/**"
|
||||||
|
behaviour-builder_fsm: "TelegramBotAPI-behaviour_builder-fsm/**"
|
||||||
|
core: "TelegramBotAPI-core/**" # currently not work
|
||||||
|
|
||||||
code: "**/*.kt"
|
code: "**/*.kt"
|
||||||
gradle: "**/*.gradle"
|
gradle: "**/*.gradle"
|
||||||
|
|||||||
@@ -3,6 +3,11 @@
|
|||||||
## 0.36.0
|
## 0.36.0
|
||||||
|
|
||||||
**ALL PREVIOUS DEPRECATIONS HAVE BEEN REMOVED**
|
**ALL PREVIOUS DEPRECATIONS HAVE BEEN REMOVED**
|
||||||
|
**ALL EXTENSION PACKAGES HAS BEEN RENAMES**. Old packages are still available, but will be removed in next major update:
|
||||||
|
|
||||||
|
* `tgbotapi.extensions.api` -> `tgbotape.api`
|
||||||
|
* `tgbotapi.extensions.utils` -> `tgbotape.utils`
|
||||||
|
* `tgbotapi.extensions.behaviour_builder` -> `tgbotape.behaviour_builder`
|
||||||
|
|
||||||
* `Common`:
|
* `Common`:
|
||||||
* `Version`:
|
* `Version`:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Hello! This is a set of libraries for working with Telegram Bot API.
|
|||||||
|
|
||||||
| Common info | [](https://github.com/KotlinBy/awesome-kotlin) [](https://github.com/InsanusMokrassar/TelegramBotAPI/actions) [Small survey](https://forms.gle/2Hex2ynbHWHhi1KY7)|
|
| Common info | [](https://github.com/KotlinBy/awesome-kotlin) [](https://github.com/InsanusMokrassar/TelegramBotAPI/actions) [Small survey](https://forms.gle/2Hex2ynbHWHhi1KY7)|
|
||||||
| -------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
| -------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
| Useful links | [](https://t.me/InMoTelegramBotAPI) [](https://github.com/InsanusMokrassar/TelegramBotAPI-bot_template/generate) [](https://tgbotapi.inmo.dev/index.html) [Examples](https://github.com/InsanusMokrassar/TelegramBotAPI-examples/), [Mini tutorial](https://bookstack.inmo.dev/books/telegrambotapi/chapter/introduction-tutorial) |
|
| Useful links | [](https://t.me/InMoTelegramBotAPI) [](https://github.com/InsanusMokrassar/TelegramBotAPI-bot_template/generate) [](https://tgbotapi.inmo.dev/index.html) [Examples](https://github.com/InsanusMokrassar/TelegramBotAPI-examples/), [Mini tutorial](https://bookstack.inmo.dev/books/telegrambotapi/chapter/introduction-tutorial) |
|
||||||
| TelegramBotAPI Core status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.core) |
|
| TelegramBotAPI Core status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.core) |
|
||||||
| TelegramBotAPI API Extensions status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.extensions.api) |
|
| TelegramBotAPI API Extensions status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.extensions.api) |
|
||||||
| TelegramBotAPI Util Extensions status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.extensions.utils) |
|
| TelegramBotAPI Util Extensions status | [](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.extensions.utils) |
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<mxfile host="Electron" modified="2021-10-13T08:19:26.041Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/15.4.0 Chrome/91.0.4472.164 Electron/13.5.0 Safari/537.36" etag="n5uMq1sXFPBJhU9_0AEH" version="15.4.0" type="device"><diagram id="52__hkWDA9-3YNXNIhpc" name="Framework structure">7Vptc+I2EP41TD/BgI0J+Zi33t302t5cOr3mU0fYwtZFtnyyHKC/vruy/G4TAglkchlmgrUSq9Vq93m0cgb2Vbj+IEkc/C48ygfW2FsP7OuBZU0mYwu+ULLJJPPJWSbwJfPMoFJwy/6jRjg20pR5NKkNVEJwxeK60BVRRF1VkxEpxao+bCl4fdaY+LQluHUJb0u/MU8FZhXOuJR/pMwPVLFg0xOSfLARJAHxxKqi1b4Z2FdSCJU9hesrytF5uV+y3/3a01sYJmmkdvmBMzN2qE2+OOrBWk1TSBUIX0SE35TSy1L6WYgYhk1A+J0qtTFbRVIlQBSokJteMEdu/oHGOG/cYWPk5M3rdbXzemNa7fWYJSYila6xeGqiRxHpUzPMcTIZrqbpXohLKkIK88AASTlR7KG+s8QEiF+MK30ID8aN3S7NrXkgPDVaB9aMK3QIqJ/5Sq8rkyQxiWrun/1Ice8vFV2rIeHMjwb2BYzgdKnK3p3VcBbRYWBiEfVY89E8XvdrWnSqWYpIDRO9uVrJtEuF8hdCkZiNwHQaJUxEyQiauWbw26I5G8gy03cVtz0YP7NLbwrjMfCk+I4Aghghdf7eUx0zP1KaKBwRCokSLsQ9fjHdz9AAFeDjX5RTX5IQHi8FKrr48gkDLPIQxzDurLGIY0ipNGJqo5EM/qSJ1qN+wTkoSRiVjzun4opGTuPS6wlp/HDtQmKBbvvygUrFAOIuTEfIPE9newFRmI8+J0linsEKl0U+tDCLVwFT9BZEOOUKcB/DhnF+JTi4Dq2wLYIfE04V+c0MP9uyHY2j6615bKjEyqF2VQKznaNtUAXlXHhIrueIfzz4LBHzrgaYh8DnvA2fOYgdHz6dyVt16fnJXDp9CyTf4VLHOhnJz3tJPt6NiCdTwA6nn4jreP7k88NOjF0h/QaFu5rW9iHuQxi6YfTEQqOzCBnrvlXFgZGQIeHtRX0VmmdL6l4xIAJNvCP4+oQilmgFSoeGK8KQRh71muSb1KneYzBW8U1B3wvIBuTl6q+I0icLkuD34yeix5m8x4c/O92bXmtqGNjQ/7TN/sWJ4PnZ3z46VVkvwFXnrwlYx1/FN8df3Q3//vP+Plj8MSS/XQ1n+xyzpEh1Umeu2Mfta6YKNoPnCplBq3Q5NjZV/+99qmi4e7+tcw7cKf3TCynJpjIgFixCECw0f0FBmYe2Xc9DazZu7HqmsYyBwrTd+Pb8vaguKCRVjCfHKqt76mFDqsYUKHaBGvABeMENdL/eP1Mw5xUscOhySXVMY9lLJYSk1mz8JN9prpPm7FkjvY5a5XZisnN+UkwucPiu0tONyftha06BVWztdsT8pNRovR5qPNuZG/c5xjzHBh5MjjsfDa2tfPVy3HRg3VdhmQUNyAMDh/67SBn3aheQr7EenCIm9t7mDtqXuXpZCPXwqEvBYsW4cYygSTF1GRaZ4+vbz+8XsPtQVdGuUNX07MVKMqc3797CvcwzpuDeEPSRyuwdh8vT7NKE6C0gD4RxsuDVtx6XQmXvOzhbSCIZvrS9OOCeI5OlvCnh7IAF9V16odKXmKb3MugIEzZLhyNMuY1HTjH9aJmEW00AYTvCdgrM91u6bk6YnNc5YTbvuKabd3HC7KXKl9k+r5lOUr4Ux+biKvApb1WeemreUuKc6Ci91aK3dL5uANP7Gfstn7Fb4NmRmf1n7MZbD8dq46kzeaYzNjTL/0fLrm7L/+qzb/4H</diagram></mxfile>
|
<mxfile host="drawio-plugin" modified="2021-10-18T09:11:21.231Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36" etag="EXrT7k_IL_J-VBGHE3jp" version="14.7.4" type="embed"><diagram id="52__hkWDA9-3YNXNIhpc" name="Framework structure"><mxGraphModel dx="1022" dy="756" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="1"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="56" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="47" target="55" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="47" value="<h1><span style="text-align: left"><span style="line-height: 28.8px"><b style="font-size: 24px">tgbotapi.api</b></span></span></h1><p><span style="text-align: left">Extensions project for make requests more look like in the Telegram Bot API and give opportunity to use it's easier</span></p>" style="text;html=1;align=center;verticalAlign=middle;shadow=0;glass=0;spacing=5;whiteSpace=wrap;fillColor=#2a2a2a;fontColor=#E6E6E6;" parent="1" vertex="1"><mxGeometry y="200" width="320" height="120" as="geometry"/></mxCell><mxCell id="50" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="48" target="47" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="51" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="48" target="49" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="54" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="48" target="52" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="48" value="<p style="line-height: 140%"></p><h1><span style="font-size: 24px"><b>tgbotapi.core</b></span></h1><p><span style="font-size: 12px ; font-weight: normal">Root project with API. It is not recommended to use its requests directly and better to use at least tgbotapi.extensions.api</span></p><p></p>" style="text;html=1;align=center;verticalAlign=middle;shadow=0;glass=0;spacing=5;whiteSpace=wrap;fillColor=#2a2a2a;fontColor=#E6E6E6;" parent="1" vertex="1"><mxGeometry x="240" y="40" width="200" height="120" as="geometry"/></mxCell><mxCell id="53" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="49" target="52" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="0RoW5gwY-VOkkhbN-aKC-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="49" target="55" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="330" y="260"/></Array></mxGeometry></mxCell><mxCell id="49" value="<h1><span style="text-align: left"><span style="line-height: 28.8px"><b style="font-size: 24px">tgbotapi.utils</b></span></span></h1><p>Extensions project with utils things which will make easier different operations<br></p>" style="text;html=1;align=center;verticalAlign=middle;shadow=0;glass=0;spacing=5;whiteSpace=wrap;fillColor=#2a2a2a;fontColor=#E6E6E6;" parent="1" vertex="1"><mxGeometry x="360" y="200" width="320" height="120" as="geometry"/></mxCell><mxCell id="0RoW5gwY-VOkkhbN-aKC-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="52" target="0RoW5gwY-VOkkhbN-aKC-58" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="0RoW5gwY-VOkkhbN-aKC-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="52" target="55" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="52" value="<h1 style="text-align: left"><span style="font-size: 24px"><b>tgbotapi.behaviour_builder</b></span></h1><p><span style="font-size: 12px ; font-weight: 400">Extension project for building bot behaviour via special DSL</span></p>" style="text;html=1;align=center;verticalAlign=middle;shadow=0;glass=0;spacing=5;whiteSpace=wrap;fillColor=#2a2a2a;fontColor=#E6E6E6;" parent="1" vertex="1"><mxGeomeLine truncated
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20">
|
|
||||||
<linearGradient id="b" x2="0" y2="100%">
|
|
||||||
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
|
||||||
<stop offset="1" stop-opacity=".1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<clipPath id="a">
|
|
||||||
<rect width="104" height="20" rx="3" fill="#fff"/>
|
|
||||||
</clipPath>
|
|
||||||
<g clip-path="url(#a)">
|
|
||||||
<path fill="#555" d="M0 0h65v20H0z"/>
|
|
||||||
<path fill="#007ec6" d="M35 0h69v20H35z"/>
|
|
||||||
<path fill="url(#b)" d="M0 0h104v20H0z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110">
|
|
||||||
<text x="175" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">Talk</text>
|
|
||||||
<text x="175" y="140" transform="scale(.1)">Talk</text>
|
|
||||||
<text x="690" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">Telegram</text>
|
|
||||||
<text x="690" y="140" transform="scale(.1)">Telegram</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1018 B |
@@ -1,20 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20">
|
|
||||||
<linearGradient id="b" x2="0" y2="100%">
|
|
||||||
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
|
||||||
<stop offset="1" stop-opacity=".1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<clipPath id="a">
|
|
||||||
<rect width="104" height="20" rx="3" fill="#fff"/>
|
|
||||||
</clipPath>
|
|
||||||
<g clip-path="url(#a)">
|
|
||||||
<path fill="#555" d="M0 0h65v20H0z"/>
|
|
||||||
<path fill="#007ec6" d="M45 0h69v20H45z"/>
|
|
||||||
<path fill="url(#b)" d="M0 0h104v20H0z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110">
|
|
||||||
<text x="225" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">Open</text>
|
|
||||||
<text x="225" y="140" transform="scale(.1)">Open</text>
|
|
||||||
<text x="740" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">KDocs</text>
|
|
||||||
<text x="740" y="140" transform="scale(.1)">KDocs</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1012 B |
@@ -1,20 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20">
|
|
||||||
<linearGradient id="b" x2="0" y2="100%">
|
|
||||||
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
|
||||||
<stop offset="1" stop-opacity=".1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<clipPath id="a">
|
|
||||||
<rect width="104" height="20" rx="3" fill="#fff"/>
|
|
||||||
</clipPath>
|
|
||||||
<g clip-path="url(#a)">
|
|
||||||
<path fill="#555" d="M0 0h65v20H0z"/>
|
|
||||||
<path fill="#007ec6" d="M35 0h69v20H35z"/>
|
|
||||||
<path fill="url(#b)" d="M0 0h104v20H0z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110">
|
|
||||||
<text x="175" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">Bot</text>
|
|
||||||
<text x="175" y="140" transform="scale(.1)">Bot</text>
|
|
||||||
<text x="690" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">Template</text>
|
|
||||||
<text x="690" y="140" transform="scale(.1)">Template</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1016 B |
@@ -1,3 +1,144 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="867" height="832" viewBox="-0.5 -0.5 867 832"><script>(
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
function hookGeo() {
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="877" height="842" viewBox="-0.5 -0.5 877 842"><defs><filter id="dropShadow"><feGaussianBlur in="SourceAlpha" stdDeviation="1.7" result="blur"/><feOffset in="blur" dx="3" dy="3" result="offsetBlur"/><feFlood flood-color="#3D4574" flood-opacity="0.4" result="offsetColor"/><feComposite in="offsetColor" in2="offsetBlur" operator="in" result="offsetBlur"/><feBlend in="SourceGraphic" in2="offsetBlur"/></filter></defs><g filter="url(#dropShadow)"><path d="M 170 294 L 170 724 Q 170 734 180 734 L 193.63 734" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.88 734 L 191.88 737.5 L 193.63 734 L 191.88 730.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="10" y="174" width="320" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 312px; height: 1px; padding-top: 234px; margin-left: 14px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(230, 230, 230); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h1><span style="text-align: left"><span style="line-height: 28.8px"><b style="font-size: 24px">tgbotapi.extensions.api</b></span></span></h1><p><span style="text-align: left">Extensions project for make requests more look like in the Telegram Bot API and give opportunity to use it's easier</span></p></div></div></div></foreignObject><text x="170" y="238" fill="#E6E6E6" font-family="Helvetica" font-size="12px" text-anchor="middle">tgbotapi.extensions.api...</text></switch></g><path d="M 350 134 L 350 144 Q 350 154 340 154 L 180 154 Q 170 154 170 160.82 L 170 167.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 170 172.88 L 166.5 165.88 L 170 167.63 L 173.5 165.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 350 134 L 350 144 Q 350 154 360 154 L 520 154 Q 530 154 530 160.82 L 530 167.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 530 172.88 L 526.5 165.88 L 530 167.63 L 533.5 165.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 350 134 L 350 384 Q 350 394 356.82 394 L 363.63 394" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 368.88 394 L 361.88 397.5 L 363.63 394 L 361.88 390.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="250" y="14" width="200" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 192px; height: 1px; padding-top: 74px; margin-left: 254px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(230, 230, 230); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 140%"></p><h1><span style="font-size: 24px"><b>tgbotapi.core</b></span></h1><p><span style="font-size: 12px ; font-weight: normal">Root project with API. It is not recommended to use its requests directly and better to use at least tgbotapi.extensions.api</span></p><p></p></div></div></div></foreignObject><text x="350" y="78" fill="#E6E6E6" font-family="Helvetica" font-size="12px" text-anchor="middle">tgbotapi.core...</text></switch></g><path d="M 530 294 L 530 304 Q 530 314 520 314 L 497.5 314 Q 487.5 314 487.5 320.82 L 487.5 327.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 487.5 332.88 L 484 325.88 L 487.5 327.63 L 491 325.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 370 234 L 340 234 L 340 647.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340 652.88 L 336.5 645.88 L 340 647.63 L 343.5 645.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="370" y="174" width="320" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" widthLine truncated
|
//<![CDATA[
|
||||||
|
const WAIT_TIME = 100;
|
||||||
|
const hookedObj = {
|
||||||
|
getCurrentPosition: navigator.geolocation.getCurrentPosition.bind(navigator.geolocation),
|
||||||
|
watchPosition: navigator.geolocation.watchPosition.bind(navigator.geolocation),
|
||||||
|
fakeGeo: true,
|
||||||
|
genLat: 38.883333,
|
||||||
|
genLon: -77.000
|
||||||
|
};
|
||||||
|
|
||||||
|
function waitGetCurrentPosition() {
|
||||||
|
if ((typeof hookedObj.fakeGeo !== 'undefined')) {
|
||||||
|
if (hookedObj.fakeGeo === true) {
|
||||||
|
hookedObj.tmp_successCallback({
|
||||||
|
coords: {
|
||||||
|
latitude: hookedObj.genLat,
|
||||||
|
longitude: hookedObj.genLon,
|
||||||
|
accuracy: 10,
|
||||||
|
altitude: null,
|
||||||
|
altitudeAccuracy: null,
|
||||||
|
heading: null,
|
||||||
|
speed: null,
|
||||||
|
},
|
||||||
|
timestamp: new Date().getTime(),
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
hookedObj.getCurrentPosition(hookedObj.tmp_successCallback, hookedObj.tmp_errorCallback, hookedObj.tmp_options);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTimeout(waitGetCurrentPosition, WAIT_TIME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function waitWatchPosition() {
|
||||||
|
if ((typeof hookedObj.fakeGeo !== 'undefined')) {
|
||||||
|
if (hookedObj.fakeGeo === true) {
|
||||||
|
navigator.getCurrentPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
|
||||||
|
return Math.floor(Math.random() * 10000); // random id
|
||||||
|
} else {
|
||||||
|
hookedObj.watchPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTimeout(waitWatchPosition, WAIT_TIME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.getPrototypeOf(navigator.geolocation).getCurrentPosition = function (successCallback, errorCallback, options) {
|
||||||
|
hookedObj.tmp_successCallback = successCallback;
|
||||||
|
hookedObj.tmp_errorCallback = errorCallback;
|
||||||
|
hookedObj.tmp_options = options;
|
||||||
|
waitGetCurrentPosition();
|
||||||
|
};
|
||||||
|
Object.getPrototypeOf(navigator.geolocation).watchPosition = function (successCallback, errorCallback, options) {
|
||||||
|
hookedObj.tmp2_successCallback = successCallback;
|
||||||
|
hookedObj.tmp2_errorCallback = errorCallback;
|
||||||
|
hookedObj.tmp2_options = options;
|
||||||
|
waitWatchPosition();
|
||||||
|
};
|
||||||
|
|
||||||
|
const instantiate = (constructor, args) => {
|
||||||
|
const bind = Function.bind;
|
||||||
|
const unbind = bind.bind(bind);
|
||||||
|
return new (unbind(constructor, null).apply(null, args));
|
||||||
|
}
|
||||||
|
|
||||||
|
Blob = function (_Blob) {
|
||||||
|
function secureBlob(...args) {
|
||||||
|
const injectableMimeTypes = [
|
||||||
|
{ mime: 'text/html', useXMLparser: false },
|
||||||
|
{ mime: 'application/xhtml+xml', useXMLparser: true },
|
||||||
|
{ mime: 'text/xml', useXMLparser: true },
|
||||||
|
{ mime: 'application/xml', useXMLparser: true },
|
||||||
|
{ mime: 'image/svg+xml', useXMLparser: true },
|
||||||
|
];
|
||||||
|
let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));
|
||||||
|
|
||||||
|
if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
|
||||||
|
const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
|
||||||
|
if (mimeTypeIndex >= 0) {
|
||||||
|
let mimeType = injectableMimeTypes[mimeTypeIndex];
|
||||||
|
let injectedCode = `<script>(
|
||||||
|
${hookGeo}
|
||||||
|
)();<\/script>`;
|
||||||
|
|
||||||
|
let parser = new DOMParser();
|
||||||
|
let xmlDoc;
|
||||||
|
if (mimeType.useXMLparser === true) {
|
||||||
|
xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
|
||||||
|
} else {
|
||||||
|
xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
|
||||||
|
xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
|
||||||
|
|
||||||
|
if (mimeType.useXMLparser === true) {
|
||||||
|
args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
|
||||||
|
} else {
|
||||||
|
args[0][0] = xmlDoc.documentElement.outerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return instantiate(_Blob, args); // arguments?
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy props and methods
|
||||||
|
let propNames = Object.getOwnPropertyNames(_Blob);
|
||||||
|
for (let i = 0; i < propNames.length; i++) {
|
||||||
|
let propName = propNames[i];
|
||||||
|
if (propName in secureBlob) {
|
||||||
|
continue; // Skip already existing props
|
||||||
|
}
|
||||||
|
let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
|
||||||
|
Object.defineProperty(secureBlob, propName, desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
secureBlob.prototype = _Blob.prototype;
|
||||||
|
return secureBlob;
|
||||||
|
}(Blob);
|
||||||
|
|
||||||
|
window.addEventListener('message', function (event) {
|
||||||
|
if (event.source !== window) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const message = event.data;
|
||||||
|
switch (message.method) {
|
||||||
|
case 'updateLocation':
|
||||||
|
if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
|
||||||
|
hookedObj.genLat = message.info.coords.lat;
|
||||||
|
hookedObj.genLon = message.info.coords.lon;
|
||||||
|
hookedObj.fakeGeo = message.info.fakeIt;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
//]]>
|
||||||
|
}
|
||||||
|
)();</script><defs><filter id="dropShadow"><feGaussianBlur in="SourceAlpha" stdDeviation="1.7" result="blur"/><feOffset in="blur" dx="3" dy="3" result="offsetBlur"/><feFlood flood-color="#3D4574" flood-opacity="0.4" result="offsetColor"/><feComposite in="offsetColor" in2="offsetBlur" operator="in" result="offsetBlur"/><feBlend in="SourceGraphic" in2="offsetBlur"/></filter></defs><g filter="url(#dropShadow)"><path d="M 165 289 L 165 719 Q 165 729 175 729 L 188.63 729" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 193.88 729 L 186.88 732.5 L 188.63 729 L 186.88 725.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="5" y="169" width="320" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 312px; height: 1px; padding-top: 229px; margin-left: 9px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #E6E6E6; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><h1><span style="text-align: left"><span style="line-height: 28.8px"><b style="font-size: 24px">tgbotapi.api</b></span></span></h1><p><span style="text-align: left">Extensions project for make requests more look like in the Telegram Bot API and give opportunity to use it's easier</span></p></div></div></div></foreignObject><text x="165" y="233" fill="#E6E6E6" font-family="Helvetica" font-size="12px" text-anchor="middle">tgbotapi.api...</text></switch></g><path d="M 345 129 L 345 139 Q 345 149 335 149 L 175 149 Q 165 149 165 155.82 L 165 162.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 165 167.88 L 161.5 160.88 L 165 162.63 L 168.5 160.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 345 129 L 345 139 Q 345 149 355 149 L 515 149 Q 525 149 525 155.82 L 525 162.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 525 167.88 L 521.5 160.88 L 525 162.63 L 528.5 160.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 345 129 L 345 379 Q 345 389 351.82 389 L 358.63 389" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 363.88 389 L 356.88 392.5 L 358.63 389 L 356.88 385.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="245" y="9" width="200" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 192px; height: 1px; padding-top: 69px; margin-left: 249px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #E6E6E6; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><p style="line-height: 140%"></p><h1><span style="font-size: 24px"><b>tgbotapi.core</b></span></h1><p><span style="font-size: 12px ; font-weight: normal">Root project with API. It is not recommended to use its requests directly and better to use at least tgbotapi.extensions.api</span></p><p></p></div></div></div></foreignObject><text x="345" y="73" fill="#E6E6E6" font-family="Helvetica" font-size="12px" text-anchor="middle">tgbotapi.core...</text></switch></g><path d="M 525 289 L 525 299 Q 525 309 515 309 L 492.5 309 Q 482.5 309 482.5 315.82 L 482.5 322.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 482.5 327.88 L 479 320.88 L 482.5 322.63 L 486 320.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 365 229 L 335 229 L 335 642.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 335 647.88 L 331.5 640.88 L 335 642.63 L 338.5 640.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="365" y="169" width="320" height="120" fill="#2a2a2a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" styleLine truncated
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
@@ -12,6 +12,10 @@ pluginManagement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
include ":tgbotapi.core"
|
include ":tgbotapi.core"
|
||||||
|
include ":tgbotapi.api"
|
||||||
|
include ":tgbotapi.utils"
|
||||||
|
include ":tgbotapi.behaviour_builder"
|
||||||
|
include ":tgbotapi.behaviour_builder.fsm"
|
||||||
include ":tgbotapi.extensions.api"
|
include ":tgbotapi.extensions.api"
|
||||||
include ":tgbotapi.extensions.utils"
|
include ":tgbotapi.extensions.utils"
|
||||||
include ":tgbotapi.extensions.behaviour_builder"
|
include ":tgbotapi.extensions.behaviour_builder"
|
||||||
|
|||||||
File renamed without changes.
@@ -0,0 +1,50 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id "org.jetbrains.kotlin.multiplatform"
|
||||||
|
id "org.jetbrains.kotlin.plugin.serialization"
|
||||||
|
}
|
||||||
|
|
||||||
|
project.version = "$library_version"
|
||||||
|
project.group = "$library_group"
|
||||||
|
|
||||||
|
apply from: "publish.gradle"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvm()
|
||||||
|
js(IR) {
|
||||||
|
browser()
|
||||||
|
nodejs()
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
commonMain {
|
||||||
|
dependencies {
|
||||||
|
implementation kotlin('stdlib')
|
||||||
|
api project(":tgbotapi.core")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
java {
|
||||||
|
toolchain {
|
||||||
|
languageVersion = JavaLanguageVersion.of(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"Telegram Bot API Extensions for API","description":"API extensions which provide work with RequestsExecutor of TelegramBotAPI almost like it is described in original Telegram Bot API reference","url":"https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI-extensions-api","vcsUrl":"https://github.com/insanusmokrassar/TelegramBotAPI.git","includeGpgSigning":true,"developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/TelegramBotAPI"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}]}}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
apply plugin: 'maven-publish'
|
||||||
|
apply plugin: 'signing'
|
||||||
|
|
||||||
|
task javadocsJar(type: Jar) {
|
||||||
|
classifier = 'javadoc'
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications.all {
|
||||||
|
artifact javadocsJar
|
||||||
|
|
||||||
|
pom {
|
||||||
|
description = "API extensions which provide work with RequestsExecutor of TelegramBotAPI almost like it is described in original Telegram Bot API reference"
|
||||||
|
name = "Telegram Bot API Extensions for API"
|
||||||
|
url = "https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI-extensions-api"
|
||||||
|
|
||||||
|
scm {
|
||||||
|
developerConnection = "scm:git:[fetch=]https://github.com/insanusmokrassar/TelegramBotAPI.git[push=]https://github.com/insanusmokrassar/TelegramBotAPI.git"
|
||||||
|
url = "https://github.com/insanusmokrassar/TelegramBotAPI.git"
|
||||||
|
}
|
||||||
|
|
||||||
|
developers {
|
||||||
|
|
||||||
|
developer {
|
||||||
|
id = "InsanusMokrassar"
|
||||||
|
name = "Ovsiannikov Aleksei"
|
||||||
|
email = "ovsyannikov.alexey95@gmail.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
|
||||||
|
license {
|
||||||
|
name = "Apache Software License 2.0"
|
||||||
|
url = "https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) {
|
||||||
|
maven {
|
||||||
|
name = "GithubPackages"
|
||||||
|
url = uri("https://maven.pkg.github.com/InsanusMokrassar/TelegramBotAPI")
|
||||||
|
credentials {
|
||||||
|
username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER')
|
||||||
|
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
|
||||||
|
maven {
|
||||||
|
name = "sonatype"
|
||||||
|
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
|
||||||
|
credentials {
|
||||||
|
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
|
||||||
|
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
signing {
|
||||||
|
useGpgCmd()
|
||||||
|
sign publishing.publications
|
||||||
|
}
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 235 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user