Compare commits
95 Commits
4c51531c1d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1885f6ec5f | ||
|
|
a5651c5e2b | ||
|
|
25cacdfbbc | ||
|
|
53e8eb039b | ||
|
|
428de2d72f | ||
|
|
334fb7984d | ||
|
|
74100ffd5b | ||
|
|
5b5ede3a07 | ||
|
|
9b11c9351d | ||
|
|
a3095fb735 | ||
|
|
ea63de4a52 | ||
|
|
cf5ad2305c | ||
|
|
350f70dae0 | ||
|
|
8654360715 | ||
|
|
2298bee312 | ||
|
|
3e4afe5f50 | ||
|
|
ec24cc679c | ||
|
|
ef5cf0ab0a | ||
|
|
83903449aa | ||
|
|
710588da6c | ||
|
|
8d11fc9614 | ||
|
|
09e3808118 | ||
|
|
e1c868624a | ||
|
|
4c28571c98 | ||
|
|
1d74143db4 | ||
|
|
da4571f6b5 | ||
|
|
771403b523 | ||
|
|
2e2ee8e2ac | ||
|
|
23f6e5c3d6 | ||
|
|
5828fdf2a2 | ||
|
|
c909bba8cc | ||
|
|
4378bc6532 | ||
|
|
b4b2e2fc8a | ||
|
|
d182cfc9fd | ||
|
|
dd457ac92a | ||
|
|
7d0dc42af3 | ||
|
|
ef9dc98cb2 | ||
|
|
fd715a5ec2 | ||
|
|
d485769fc5 | ||
|
|
6356e0aba7 | ||
|
|
5a6da54d26 | ||
|
|
94c023deab | ||
|
|
25cb8b93fe | ||
|
|
3197e35e76 | ||
|
|
c6730ad45d | ||
|
|
fb348b0fbf | ||
|
|
42dc7d8134 | ||
|
|
c99e12d3ff | ||
|
|
0c114560b0 | ||
|
|
a6c71cbbcc | ||
|
|
7057019807 | ||
|
|
5cf84d302c | ||
|
|
0ff4b2fa9a | ||
|
|
23577e8a76 | ||
|
|
cbbfc126ef | ||
|
|
b982cf5439 | ||
|
|
0a5b785f87 | ||
|
|
d42e8ad066 | ||
|
|
049d8d4b60 | ||
|
|
342cc08ac5 | ||
|
|
9a7b22c194 | ||
|
|
72434a90d5 | ||
|
|
e6cf63d700 | ||
|
|
08411b122f | ||
|
|
3af3f337ab | ||
|
|
362f1caa7a | ||
|
|
73d9b52cd4 | ||
|
|
96eba40f57 | ||
|
|
0febea824f | ||
|
|
1d482afd62 | ||
|
|
df446242d0 | ||
|
|
51d405f181 | ||
|
|
3b32360909 | ||
|
|
9aa8192c3c | ||
|
|
12de185284 | ||
|
|
0cbb944827 | ||
|
|
1f5763af8e | ||
|
|
b06fc66e12 | ||
|
|
36c6138974 | ||
|
|
343e38cbb9 | ||
|
|
1457675b85 | ||
|
|
1eae42a9c4 | ||
|
|
fadb88d719 | ||
|
|
967abbf747 | ||
|
|
61cc4b5e5e | ||
|
|
42c024bb8b | ||
|
|
bdb6af99a7 | ||
|
|
5e5ee5c1dd | ||
|
|
1d0d9bed26 | ||
|
|
bdd354e643 | ||
|
|
f532c94d0f | ||
|
|
1c513ed925 | ||
|
|
be1b4ba94f | ||
|
|
8a2e14ef7b | ||
|
|
9a402b4764 |
3
.obsidian/community-plugins.json
vendored
3
.obsidian/community-plugins.json
vendored
@@ -2,5 +2,6 @@
|
|||||||
"obsidian-full-calendar",
|
"obsidian-full-calendar",
|
||||||
"obsidian-icon-folder",
|
"obsidian-icon-folder",
|
||||||
"obsidian-git",
|
"obsidian-git",
|
||||||
"obsidian-smart-typography"
|
"obsidian-smart-typography",
|
||||||
|
"mermaid-tools"
|
||||||
]
|
]
|
||||||
2633
.obsidian/plugins/mermaid-tools/main.js
vendored
Normal file
2633
.obsidian/plugins/mermaid-tools/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
.obsidian/plugins/mermaid-tools/manifest.json
vendored
Normal file
11
.obsidian/plugins/mermaid-tools/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "mermaid-tools",
|
||||||
|
"name": "Mermaid Tools",
|
||||||
|
"version": "1.3.0",
|
||||||
|
"minAppVersion": "1.4.0",
|
||||||
|
"description": "Improved Mermaid.js experience for Obsidian: visual toolbar with common elements & more",
|
||||||
|
"author": "dartungar",
|
||||||
|
"authorUrl": "https://dartungar.com",
|
||||||
|
"fundingUrl": "https://www.paypal.com/paypalme/dartungar",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
149
.obsidian/plugins/mermaid-tools/styles.css
vendored
Normal file
149
.obsidian/plugins/mermaid-tools/styles.css
vendored
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
.mermaid-toolbar-container, .mermaid-toolbar-container * {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-toolbar-top-row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-toolbar-elements-container {
|
||||||
|
padding-top: 1rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-toolbar-element {
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 2px 2px 2px 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
flex: 1 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-toolbar-element:hover {
|
||||||
|
background-color: var(--interactive-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-element-category-header::before {
|
||||||
|
content: "▼ ";
|
||||||
|
font-size: 70%;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-element-category-header.collapsed::before {
|
||||||
|
content: "▶ ";
|
||||||
|
font-size: 70%;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-element-container {
|
||||||
|
padding-top: 6px;
|
||||||
|
border-bottom: var(--border-width) solid var(--color-base-35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-element-modal > div {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-element-modal label {
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom Category Management Styles */
|
||||||
|
.mermaid-tools-category-management {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
padding: 1rem;
|
||||||
|
border: 1px solid var(--color-base-25);
|
||||||
|
border-radius: 8px;
|
||||||
|
background-color: var(--color-base-00);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-category-management h3 {
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
color: var(--text-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-category-management button.mod-cta {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit Category Modal Styles */
|
||||||
|
.mermaid-tools-edit-category-modal {
|
||||||
|
min-width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal .setting-item {
|
||||||
|
padding: 8px 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal .setting-item-info {
|
||||||
|
flex-grow: 1;
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal .setting-item-name {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--text-normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal .setting-item-description {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal input,
|
||||||
|
.mermaid-tools-edit-category-modal textarea {
|
||||||
|
width: 100%;
|
||||||
|
padding: 4px 8px;
|
||||||
|
border: 1px solid var(--color-base-30);
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: var(--color-base-00);
|
||||||
|
color: var(--text-normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mermaid-tools-edit-category-modal input:focus,
|
||||||
|
.mermaid-tools-edit-category-modal textarea:focus {
|
||||||
|
border-color: var(--color-accent);
|
||||||
|
outline: none;
|
||||||
|
box-shadow: 0 0 0 2px var(--color-accent-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 16px;
|
||||||
|
border-top: 1px solid var(--color-base-25);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-container button {
|
||||||
|
padding: 6px 16px;
|
||||||
|
border: 1px solid var(--color-base-30);
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: var(--color-base-10);
|
||||||
|
color: var(--text-normal);
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-container button:hover {
|
||||||
|
background-color: var(--color-base-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-container button.mod-cta {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
color: var(--text-on-accent);
|
||||||
|
border-color: var(--color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-container button.mod-cta:hover {
|
||||||
|
background-color: var(--color-accent-hover);
|
||||||
|
}
|
||||||
211
.obsidian/workspace.json
vendored
211
.obsidian/workspace.json
vendored
@@ -4,112 +4,39 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "b1afd552ee0aa86f",
|
"id": "6ce0f4672b59a07b",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "78448225d8fe26c6",
|
"id": "b5daf62d6db275c6",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 08_2025.md",
|
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_entities.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Разработка - 08_2025"
|
"title": "status_entities"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "7775a29d77b887ee",
|
"id": "5c58359e6dbf08fd",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Untitled.md",
|
"file": "WORK & PROJECTS/UAS/Servers access.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Untitled"
|
"title": "Servers access"
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "4f0b55f30aba545b",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "WORK & PROJECTS/Mol/Deepseek API-key.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Deepseek API-key"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "132e3f17d9c47079",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/test logic.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "test logic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "6b6ae15e40ca713f",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "canvas",
|
|
||||||
"state": {
|
|
||||||
"file": "WORK & PROJECTS/UAS/IP-TEL.canvas",
|
|
||||||
"viewState": {
|
|
||||||
"x": 356.6478527607362,
|
|
||||||
"y": -446.65950920245405,
|
|
||||||
"zoom": -0.872375571136798
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"icon": "lucide-layout-dashboard",
|
|
||||||
"title": "IP-TEL"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "de53b1cb0148b07a",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "WORK & PROJECTS/UAS/Plan.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Plan"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "08b9c8d0b05e0c9b",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "WORK & PROJECTS/Mol/Ideas/Все идеи для Моли.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Все идеи для Моли"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 5
|
"currentTab": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "vertical"
|
"direction": "vertical"
|
||||||
@@ -132,7 +59,7 @@
|
|||||||
"autoReveal": false
|
"autoReveal": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-folder-closed",
|
"icon": "lucide-folder-closed",
|
||||||
"title": "Files"
|
"title": "Файловый менеджер"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -166,7 +93,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 411.5
|
"width": 314.5
|
||||||
},
|
},
|
||||||
"right": {
|
"right": {
|
||||||
"id": "5a12b65cf742d665",
|
"id": "5a12b65cf742d665",
|
||||||
@@ -182,7 +109,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "backlink",
|
"type": "backlink",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 06_2025.md",
|
"file": "WORK & PROJECTS/Ulab/Доступы к точкам.md",
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
@@ -192,7 +119,7 @@
|
|||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
},
|
},
|
||||||
"icon": "links-coming-in",
|
"icon": "links-coming-in",
|
||||||
"title": "Backlinks for Разработка - 06_2025"
|
"title": "Обратные ссылки для Доступы к точкам"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -201,12 +128,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outgoing-link",
|
"type": "outgoing-link",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 06_2025.md",
|
"file": "WORK & PROJECTS/Ulab/Доступы к точкам.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
},
|
},
|
||||||
"icon": "links-going-out",
|
"icon": "links-going-out",
|
||||||
"title": "Outgoing links from Разработка - 06_2025"
|
"title": "Исходящие ссылки из Доступы к точкам"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -216,12 +143,10 @@
|
|||||||
"type": "tag",
|
"type": "tag",
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "frequency",
|
"sortOrder": "frequency",
|
||||||
"useHierarchy": true,
|
"useHierarchy": true
|
||||||
"showSearch": false,
|
|
||||||
"searchQuery": ""
|
|
||||||
},
|
},
|
||||||
"icon": "lucide-tags",
|
"icon": "lucide-tags",
|
||||||
"title": "Tags"
|
"title": "Теги"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -230,13 +155,13 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "WORK & PROJECTS/UAS/Plan.md",
|
"file": "WORK & PROJECTS/UAS/Servers access.md",
|
||||||
"followCursor": false,
|
"followCursor": false,
|
||||||
"showSearch": false,
|
"showSearch": false,
|
||||||
"searchQuery": ""
|
"searchQuery": ""
|
||||||
},
|
},
|
||||||
"icon": "lucide-list",
|
"icon": "lucide-list",
|
||||||
"title": "Outline of Plan"
|
"title": "Структура Servers access"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -244,69 +169,71 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 311.5
|
"width": 300
|
||||||
},
|
},
|
||||||
"left-ribbon": {
|
"left-ribbon": {
|
||||||
"hiddenItems": {
|
"hiddenItems": {
|
||||||
"bases:Create new base": false,
|
"mermaid-tools:Open Mermaid Toolbar": false,
|
||||||
"switcher:Open quick switcher": false,
|
"switcher:Меню быстрого перехода": false,
|
||||||
"graph:Open graph view": false,
|
"graph:Граф": false,
|
||||||
"canvas:Create new canvas": false,
|
"canvas:Создать новый холст": false,
|
||||||
"daily-notes:Open today's daily note": false,
|
"daily-notes:Сегодняшняя заметка": false,
|
||||||
"templates:Insert template": false,
|
"templates:Вставить шаблон": false,
|
||||||
"command-palette:Open command palette": false,
|
"command-palette:Открыть палитру команд": false,
|
||||||
|
"bases:Создать новую базу": false,
|
||||||
"obsidian-full-calendar:Open Full Calendar": false,
|
"obsidian-full-calendar:Open Full Calendar": false,
|
||||||
"obsidian-git:Open Git source control": false
|
"obsidian-git:Open Git source control": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "de53b1cb0148b07a",
|
"active": "5c58359e6dbf08fd",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"WORK & PROJECTS/UAS/IP-TEL.canvas",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/План СИЛА.md",
|
||||||
|
"Без названия.md",
|
||||||
|
"WORK & PROJECTS/UAS/MAIL TRANSFER.md",
|
||||||
|
"PERSONAL PROJECTS/VPS.md",
|
||||||
|
"PERSONAL PROJECTS/STREAMS/TEXT TEMPLATE.md",
|
||||||
|
"PERSONAL PROJECTS/STREAMS/P2EP GOLD ZODIAC AOBA TV.md",
|
||||||
|
"PERSONAL PROJECTS/STREAMS",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Шаблон договора 2024-2025.doc",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Оборудование.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/ОА ЛИМС.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/для ЛИМС.7z",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Сотрудники.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Помещения.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/f92754ca-70d3-4753-ae10-3a29e541da4f.pdf",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Act.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Account.xlsx",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/entities flow.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/Структура статусов.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Система тарификации/Расчёт тарифов и списаний.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/1.0/1.0.md",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Таблицы нумератора и документов.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Архитектура редактора и генератора (Alfa + Mol).canvas",
|
||||||
|
"JRPG.md",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Websockets scheme.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Alfa cloud prod.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/notifies.canvas",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/СМК.md",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Описание первой версии.md",
|
||||||
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Схема связей юрлиц и адресов.canvas",
|
||||||
|
"WORK & PROJECTS/UAS/Untitled.canvas",
|
||||||
|
"WORK & PROJECTS/UAS/Servers access.md",
|
||||||
"WORK & PROJECTS/UAS/Plan.md",
|
"WORK & PROJECTS/UAS/Plan.md",
|
||||||
"WORK & PROJECTS/UAS/IP-TEL.png",
|
"WORK & PROJECTS/UAS/IP-TEL.png",
|
||||||
"WORK & PROJECTS/UAS/Access.md",
|
"WORK & PROJECTS/UAS/Access.md",
|
||||||
"PERSONAL PROJECTS/cloudflare temp mail.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля Заявок (декомпозиция) 2026.02.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/mail.mol-soft.ru.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/pgo_to_groups.md",
|
||||||
"WORK & PROJECTS/Untitled",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/modules_to_dyn_controls.md",
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2026_01.pdf",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/dynamic_controls_table.md",
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2026_01.pdf.crdownload",
|
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/firstvds_2026_01.pdf",
|
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/Operation_Check_PJSC_Sberbank_08012026.pdf",
|
|
||||||
"PERSONAL PROJECTS/P2EP/logo.canvas",
|
|
||||||
"WORK & PROJECTS/UAS",
|
|
||||||
"PERSONAL PROJECTS/P2EP/cdRead.canvas",
|
|
||||||
"PERSONAL PROJECTS/P2EP/Новый текстовый документ.txt",
|
|
||||||
"PERSONAL PROJECTS/P2EP/pseudoCode/fade calculation.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Структура таблиц. Основа + заказы.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/Operation_Check_PJSC_Sberbank_01122025.pdf",
|
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2025_12.pdf",
|
|
||||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2025_12.pdf.crdownload",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля заявки v2.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/test logic.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/test logic.md",
|
||||||
"Untitled 1.md",
|
"Untitled 1.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/Supervisor/job_worker.md",
|
"PERSONAL PROJECTS/cloudflare temp mail.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/moldev.ru.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/samplings table.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/Mol Public Prod.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/pgo_to_groups.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/VPN-FIREWALL-GATE (Cerberus).md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/modules_to_dyn_controls.md",
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 08_2025.md",
|
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/dynamic_controls_table.md",
|
||||||
"2025-07-18.md",
|
|
||||||
"JRPG.md",
|
|
||||||
"WORK & PROJECTS/Mol/Deepseek API-key.md",
|
|
||||||
"Untitled.md",
|
"Untitled.md",
|
||||||
"WORK & PROJECTS/Mol/Серверы/Jira - Service - Confluence - Crm.md",
|
"WORK & PROJECTS/Mol/Серверы/1С Бухгалтерия.md",
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 07_2025.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 06_2025.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 04_2025.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/Структура статусов.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_stage_logs.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_stages.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_entities_types.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_entities_logs.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_entities.md",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/entities flow.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Статусы/Структура статусов.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/ТЗ динамических полей и ФИЗов.canvas",
|
|
||||||
"WORK & PROJECTS/Mol/Серверы/Схема инфраструктуры.canvas",
|
|
||||||
"Структура объектов испытаний.png",
|
"Структура объектов испытаний.png",
|
||||||
"Схема связей юрлиц и адресов.png",
|
"Схема связей юрлиц и адресов.png",
|
||||||
"WORK & PROJECTS/img/Pasted image 20241212175419.png",
|
"WORK & PROJECTS/img/Pasted image 20241212175419.png",
|
||||||
|
|||||||
127
PERSONAL PROJECTS/STREAMS/P2EP GOLD ZODIAC AOBA TV.md
Normal file
127
PERSONAL PROJECTS/STREAMS/P2EP GOLD ZODIAC AOBA TV.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
Отлично, у меня теперь достаточно информации. Вот подробный гайд по интересующим тебя частям игры.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## После Sky Museum и битвы с Tatsuya Sudou
|
||||||
|
|
||||||
|
После победы над Sudou тебе нужно посетить несколько мест: сначала загляни в Kismet Pub в Aoba (сцена), затем в Police Dept в Konan (ещё сцена). Потом поговори с дамой в Shiraishi (Hirasaka), чтобы узнать, где находится бывший парень Улалы, — и иди к нему в Parabellum (Aoba).
|
||||||
|
|
||||||
|
После этого открываются два данжа подряд — **GOLD** и **Club Zodiac**.
|
||||||
|
|
||||||
|
**GOLD (Gym):** Иди на север к двери Boxing Gym, затем на запад, потом на юго-восток к лестнице на 2F → на юг, восток, север к лестнице на 3F → на север, немного на запад к Women's Locker Room. Поговори с сотрудницей и получи Gym Key. Вернись к Boxing Gym и войди. Тебя ждёт босс — **Joker Ulala**. Она на уровне 20, даёт 2000 exp и 8000 yen. Тактика простая: атакуй и лечись. Важный совет из FAQ: когда Joker применяет заклинание Old Maid, оно случайно заставляет одного из твоих персонажей атаковать союзников. Единственный способ защититься — выбрать команду "Defend" для всех персонажей в тот ход.
|
||||||
|
|
||||||
|
**Club Zodiac:** Иди на запад, север, восток. Войдя внутрь, пройди через дверь у бара. Путь: север → восток → север → северо-запад → север до лестницы на 2F. Далее: восток, юг, восток, юг, восток, юг, восток к лестнице на 3F. Поднявшись, иди на запад, потом на север к двери Secret Casino. Пароль — **"Panther"** (можно узнать у мафиози в Staff Room, если сначала попробовать войти с неверным паролем). Босс — **Joker Noriko + 2 Ryuman**. Фокусируйся на слабостях каждого противника по очереди, не забывай защищаться от Old Maid.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Aoba Park (первый визит)
|
||||||
|
|
||||||
|
Данж делится на 3 зоны: Южная сторона (вход), Центральная зона (цель первого визита — Rest Area) и Северная сторона (цель второго визита — Concert Hall).
|
||||||
|
|
||||||
|
Перед входом поговори со стариком у парка — он расскажет слух о говорящих цветах. Распространи этот слух, чтобы открыть сайд-квест. Далее двигайся на восток, подбери White Bandana из ящика, поговори с синим цветком. Затем зигзагом на северо-запад, потом на восток. Говори с жёлто-зелёным цветком возле ворот, восточнее найдёшь сундук с Miracle Soda. Пройди через ворота в центральную часть. Иди на север, поговори с жёлтым цветком, затем снова через ворота.
|
||||||
|
|
||||||
|
Ищи Rest Area — она в западном углу второй зоны. Третью зону посещать необязательно, хотя там есть Trish's Fountain у северного края.
|
||||||
|
|
||||||
|
**Сайд-квест Idol's Ghost (Линда):** Если начал квест в Shiraishi Ramen, в парке встретишь именного врага Linda. После победы она дропает Linda's Bra. Важно: не жди конца данжа — сдай предмет сразу, иначе NPC в Shiraishi исчезнет.
|
||||||
|
|
||||||
|
**Редкий враг Nata:** В парке может появиться демон-персона Nata на уровне 39 (при средней партии ~24). Он сразу кастует Taru Kaja на себя, удваивая физатаку, и бьёт почти на 300 урона. Слаб только к Молнии (Lightning). Главная тактика — чередовать воскрешение союзников и атаки самыми мощными заклинаниями. За победу получишь его карточку Paopei.
|
||||||
|
|
||||||
|
**После парка — развилка:** Иди в Kuzunoha в Aoba и распространи слух о человеке в Parabellum. Если выберешь женщину — к тебе присоединится Ellen (Eriko/Ellie). Если мужчину — Nate (Nanjo). Затем иди в Parabellum (Aoba).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Бомбоубежище в Kasugayama (опциональный данж)
|
||||||
|
|
||||||
|
Bomb Shelter — опциональный данж, доступный через подземный склад школы Kasugayama High. По слуху, тот, кто войдёт, никогда не найдёт выход — но есть и другой слух о человеке, которому удалось выбраться с помощью зеркала. Данж разделён на 9 зон; каждая новая зона открывается после прохождения соответствующего основного данжа игры. Внутри карту можно использовать только после нахождения её в этой зоне.
|
||||||
|
|
||||||
|
Уже через несколько минут в зоне 2 найдёшь карту — она очень пригодится, так как зоны становятся всё более лабиринтными. Рядом с картой есть доска объявлений.
|
||||||
|
|
||||||
|
Слух для открытия зоны 2: услышать от Robin Goodfellow, распространить только через Minotaur. Прогресс в убежище напрямую завязан на прохождение основных данжей — после каждого нового данжа открывается следующая зона.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sumaru TV (маршрут Ellie/Ellen)
|
||||||
|
|
||||||
|
Это основной данж, уникальный для маршрута Ellie в отличие от маршрута Nanjo. Данж необычный — цель не просто «дойти до конца».
|
||||||
|
|
||||||
|
**Завязка:** Партия идёт в Sumaru TV, чтобы найти fortune-teller Wang Long Chizuru, связанную с New World Order. При входе встретишь чёрного кота. После первой встречи с ним атмосфера меняется — всё вокруг становится чёрно-белым и музыка меняется. Ellen с её знаниями оккультизма понимает: Chizuru наложила проклятие, и единственный выход — пройти через 8 «врат» (студий с отметками Ba Gua) в правильном порядке.
|
||||||
|
|
||||||
|
**Сайд-квест Reiko Kashima:** Поговори с охранником в вестибюле — он расскажет слух о Reiko. Распространи слух в агентстве, и Reiko Kashima будет случайно появляться в данже. После победы над ней получишь её зонтик. Отдать его охраннику можно только после победы над боссом Joker Junko.
|
||||||
|
|
||||||
|
**Подготовка:** Перед заходом рекомендуется обеспечить Ellen персону Shaka (Hierophant). Он «силён против всего» (Strong Against All), включая иммунитет к Light и Dark — это очень ценно.
|
||||||
|
|
||||||
|
**Разгадка босс-раша:** Ближе к концу встретишь "Boy with Earring" — оказывается, это не тот, за кого себя выдаёт. Это чёрный кот в disguise, который трансформируется в демоническую форму — с ним нужно сразиться.
|
||||||
|
|
||||||
|
**Финальный босс (Joker Junko):** После восстановления нормальной атмосферы партия добирается до Wang Long Chizuru, которая ведёт своё шоу. Во время встречи Chizuru превращает Junko Kurosu (мать Jun) в Joker и уходит. Тебе придётся сражаться с Joker Junko.
|
||||||
|
|
||||||
|
**Тактика против Chizuru (если она появляется как промежуточный босс):** Chizuru использует дубликатов себя. Чтобы избавиться от клонов, нужно атаковать настоящую Chizuru одиночной физической атакой оружием — тогда все копии исчезнут. Обычные атаки по клонам не работают. Можно также использовать «Honeycomb» fusion (Shot + Shot + Shot) — физические атаки не встречают сопротивления Shikigami.
|
||||||
|
|
||||||
|
**Для Joker Junko** — используй Fusion Spells, держи Maya на лечении, и обязательно **защищайся всей партией** когда видишь заклинание Old Maid.
|
||||||
|
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Полная шпаргалка по персонам и Fusion Spells (GOLD → Sumaru TV)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Как призвать ключевые персоны
|
||||||
|
|
||||||
|
**Jack Frost** — аркан **Lovers (VI)**, нужно **72 карты Lovers**. Уникальность: единственная персона в игре, способная читать Atomic Bufula и запускать Fusion King Frost.
|
||||||
|
|
||||||
|
**Gandharva** — аркан **Star (XVII)**, нужно **92 карты Star**.
|
||||||
|
|
||||||
|
**Shaka** — аркан **Hierophant (V)**, нужно **87 карт Hierophant + материальная карта "Yuiga Dokuson"**. Карту Yuiga Dokuson выбиваешь из демона-персоны Shaka в бомбоубежище Kasugayama.
|
||||||
|
|
||||||
|
**Byakko** — аркан **Hermit (IX)**, нужно **132 карты Hermit**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Стоковые персоны Katsuya и Baofu
|
||||||
|
|
||||||
|
**Helios** (Katsuya, Justice XI, уровень 1) — Fire affinity, иммунитет к огню. Спеллы: Agi → Maha Agi (mutation). Важно: Maha Agi — обязательный финальный компонент Fusion **L'Oiseau d'Feu**. Уникален, повторно не призвать.
|
||||||
|
|
||||||
|
**Odysseus** (Baofu, Hanged Man XII, уровень 6) — Wind/Lightning immunity, уязвим к земле. Спеллы: Garu → Maha Garu (rank 8). Soothing Melody — mutation. Уникален, повторно не призвать.
|
||||||
|
|
||||||
|
Вывод: **оба стоковых персонажа уже несут нужные Fire и Wind спеллы для Fusion**, так что их менять необязательно — главное не сдавать в Velvet Room.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Апгрейд для Katsuya (~уровень 25)
|
||||||
|
|
||||||
|
**Mars** (Justice XI, уровень 25, 75 карт) — Fire affinity, резист к огню. Спеллы: Agilao, Straight Slash, Hama, **Media** (групповое лечение!), Twin Slash, Fire Storm (mutation). Лучшая совместимость: Katsuya и Tatsuya. Mars — прямой апгрейд Helios: даёт более сильный Fire + **Media**, что закрывает вопрос лечения для Katsuya.
|
||||||
|
|
||||||
|
### Апгрейд для Baofu (~уровень 24)
|
||||||
|
|
||||||
|
**Kabandha** (Hanged Man XII, уровень 24, 96 карт) — Water affinity, иммунитет к воде, уязвим к огню. Спеллы: Aques, Wall of Water, **Maha Aques**, Acid Rain (mutation). Return item — карта Maha Aques. Kabandha закрывает Water-часть Fusion цепочек (Vain Splash, Tidal Wave) вместо Odysseus, у которого воды нет вообще.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Итоговая шпаргалка Fusion Spells
|
||||||
|
|
||||||
|
| Fusion Spell | Эффект | Компоненты по порядку | Кто несёт |
|
||||||
|
| ------------------------------------- | --------------------------------------- | ------------------------------------- | ----------------------------------------------- |
|
||||||
|
| **L'Oiseau d'Feu** | Большой Fire урон по всем | Fire → Earth → **Maha Agi** | Helios/Mars (Fire) + любой Earth |
|
||||||
|
| **Cyclone Slash** | Большой Wind урон по всем | Wind → Water → **Maha Garu** | Nike/Odysseus (Wind) + Kabandha (Water) |
|
||||||
|
| **Maximum Tempest** | Большой Wind урон по всем | Wind → Water → **Maha Garula** | Nike rank 8 (Maha Garula) + Kabandha |
|
||||||
|
| **Ice Blast** | AoE Ice + 40% заморозка | Ice → Ice | Jack Frost (Bufula) + Jack Frost или другой Ice |
|
||||||
|
| **King Frost** ⭐ | Огромный Ice урон по всем (level-based) | **Atomic Bufula** → **Summon Spirit** | Jack Frost (уникально!) |
|
||||||
|
| **Fire Burst** | Fire + Sword по одному врагу | Fire → **Straight Slash** | Gandharva/Helios (Fire) + Mars (Straight Slash) |
|
||||||
|
| **Muzzle Shoot** | Огромный урон одному + заглушка | **Mafui** → Shot | Nike/Shaka (Mafui) + любой Shot |
|
||||||
|
| **Honeycomb** | Огромный урон по всем (физ.) | Shot → Shot → Shot | Трое с Shot-атаками |
|
||||||
|
| **Pantheon** | Большой Holy урон по всем | Holy → Almighty → **Hieros Glupaine** | Shaka (Holy Light/Nirvana) |
|
||||||
|
| **Status Fusions** (Sleep/Panic/etc.) | Высокий шанс статуса по всем | Status → Status → **Soothing Melody** | Odysseus или Gandharva (Soothing Melody) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Распределение по персонажам
|
||||||
|
|
||||||
|
|Персонаж|Персона|Аркан|Уровень|Роль в Fusion|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|**Katsuya**|Helios (старт) → **Mars**|Justice XI|1 → 25|Fire для L'Oiseau d'Feu и Fire Burst|
|
||||||
|
|**Baofu**|Odysseus (старт) → **Kabandha**|Hanged Man XII|6 → 24|Wind (Odysseus) или Water (Kabandha)|
|
||||||
|
|**Ellen**|Nike (старт)|Judgement XX|23|Wind AoE + Diarama + Mafui для Muzzle Shoot|
|
||||||
|
|**Ellen**|**Shaka**|Hierophant V|29|Holy + Lightning + Recarm (к Sumaru TV)|
|
||||||
|
|**Ulala/Ellen**|**Jack Frost**|Lovers VI|18|Ice Blast, King Frost, Atomic Bufula|
|
||||||
|
|**Maya**|**Gandharva**|Star XVII|23|Fire + Soothing Melody для Status Fusions|
|
||||||
|
|**Maya**|**Byakko**|Hermit IX|33|Ice/Water для цепочек + Do or Die|
|
||||||
20
PERSONAL PROJECTS/STREAMS/TEXT TEMPLATE.md
Normal file
20
PERSONAL PROJECTS/STREAMS/TEXT TEMPLATE.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
- слушаем музыку
|
||||||
|
- приветствуем всех, кто подключился к стриму, передаём привет всем, кто не с нами
|
||||||
|
- обезумевший провайдер прямо перед НГ и неясность с ютубом
|
||||||
|
- говорим спасибо всем, кто поддерживает перевод, включаем донаты ДА и БУСТИ
|
||||||
|
- разговариваем про статус перевода, титаническая работа, что мы долшли до точки, когда не стыдно показать. Говорим про редактуру (то, что практически весь сюжет, город и данжи вычитаны). Показываем, над чем работаем прямо сейчас и что осталась боёвка и общение с демонами, графика и казино. Ситуация с тестерами. Смотрим табличку перевода
|
||||||
|
- вспоминаем былые деньки, когда на стриме начинали переводить сюжет, я ещё не подозревал, что буду много раз всё переписывать. В тесте это выглядит как одно, а в игре по-другому.
|
||||||
|
- разбор ресурсов IS и EP. Импорт и экспорт сцен ивентов. Разбор данжей. Бесперпективность реверса исходников
|
||||||
|
- разговоры о ремейке PSP, статус разбора
|
||||||
|
- мысли о ремейке обеих частей и скриптовая ВМ, подход к разработке.
|
||||||
|
- начинаем играть (запуск MGS)
|
||||||
|
- запуск игры. Комментрируем каждую сцену.
|
||||||
|
- играем до 01:00, минимально отвечаем на чат, максимально отвечаем на донаты. цель - дойти до сцены с баофу и улалой
|
||||||
|
- максимальные комментарии о переводе
|
||||||
|
- перерыв 15 минут, включаем SA
|
||||||
|
- 5 после прихода развлекаемся в SA
|
||||||
|
- включаемся, даём комментарии о чате и плохом поведении.
|
||||||
|
- продолжаем играть и кайфовать до 4:00, отвечая на чат
|
||||||
|
- в конце благодарим всех ещё раз
|
||||||
|
- прощаемся
|
||||||
|
- слушаем музыку 10 минут
|
||||||
15
PERSONAL PROJECTS/VPS.md
Normal file
15
PERSONAL PROJECTS/VPS.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
95.81.100.45
|
||||||
|
|
||||||
|
root
|
||||||
|
shemet
|
||||||
|
ljuJdjh5ljuJdjh5
|
||||||
|
|
||||||
|
proto
|
||||||
|
ee7ad4edc55facbf89916f064ed56774c86b6f6e636f6e2e6e6c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
tg://proxy?server=95.81.100.45&port=8443&secret=ee7ad4edc55facbf89916f064ed56774c86b6f6e636f6e2e6e6c
|
||||||
|
```
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
nas_admin
|
|
||||||
aA1234567890
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Account.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Account.xlsx
Normal file
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Act.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Act.xlsx
Normal file
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Помещения.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Помещения.xlsx
Normal file
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Сотрудники.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/_Сотрудники.xlsx
Normal file
Binary file not shown.
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/ОА ЛИМС.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/ОА ЛИМС.xlsx
Normal file
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Оборудование.xlsx
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/Оборудование.xlsx
Normal file
Binary file not shown.
Binary file not shown.
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/для ЛИМС.7z
Normal file
BIN
WORK & PROJECTS/Mol/Документы для ТЗ ЛИМС/GRB/для ЛИМС.7z
Normal file
Binary file not shown.
@@ -11,6 +11,11 @@ if [ "$#" -ne 2 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sudo apt install fail2ban
|
||||||
|
sudo systemctl enable fail2ban
|
||||||
|
|
||||||
|
|
||||||
|
apt install sudo
|
||||||
hostnamectl set-hostname $1
|
hostnamectl set-hostname $1
|
||||||
adduser moluser
|
adduser moluser
|
||||||
usermod -aG sudo moluser
|
usermod -aG sudo moluser
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"nodes":[
|
|
||||||
{"id":"63bc932b6e788337","x":-751,"y":-349,"width":431,"height":1549,"type":"group","label":"Типы и хранение данных"},
|
|
||||||
{"id":"90e63a87b404a8ea","x":-220,"y":-349,"width":520,"height":1089,"color":"4","type":"group","label":"Ориентировочный workflow для MVP"},
|
|
||||||
{"id":"82c92d6f3a02a4a6","x":360,"y":-349,"width":520,"height":1089,"color":"6","type":"group","label":"workflow пользовательских полей"},
|
|
||||||
{"id":"65173e51537acb80","x":-731,"y":-329,"width":391,"height":309,"color":"1","type":"text","text":"**Массив обязательных полей.**\nСюда попадают поля, которые не прописаны в БД, не имеют свойств и работают как сейчас.\n\n- Показываются всегда\n- Валидируются в обычном режиме\n- Сохраняются в обычном режиме в поля таблицы заявки/основания\n- Возможен перенос в массивы данных для удобства хранения/добавления"},
|
|
||||||
{"id":"815f80b062c9109e","x":-731,"y":0,"width":391,"height":620,"color":"4","type":"text","text":"**Массив опциональных полей**\nМногие поля из текущей конфигурации должны перейти в категорию “опциональных”.\n- Поля созданы нами\n- Свойства каждого поля хранятся в БД -\n\t- наименование поля\n\t- внутреннее наименование для синхронизации с фронтедом\n\t- родительская сущность\n\t- привязка к тарифам\n\t- привязка к типу ОИ\n\t- привязка к типу исследований\n\t- привязка к ПГО / ФИЗ\n\t- свойства валидации Laravel Request\n\t\t- при сохранении\n\t\t- при отправке на согласование\n\t\t- текст ошибки для пользователя\n\t- доступность в документах\n\t\t- макрос/код в документах\n\t\t\t- внутренний код / наименование\n\t"},
|
|
||||||
{"id":"bb17e362d8091d58","x":-731,"y":640,"width":391,"height":540,"color":"6","type":"text","text":"**Массив пользовательских полей**\nНе входят в MVP.\nПоля, которые могут создавать и пользователи.\nВключают в себя всё вышеперечисленное, но хранятся ОТДЕЛЬНО и рендерятся на фронте отдельным модулем, потому имеют дополнительные свойства:\n- тип поля (текст, мульти/селект, число, файл, массив)\n- некий движок-конструктор получения данных для селектов\n- индекс отображения/положения в интерфейсе\n- связанное/зависимое поле для валидации\n- привязка к конкретной вкладке на фронте\n- упрощённая валидация (тип поступивших данных/обязательность)\n- данные хранятся в json родительской сущности."},
|
|
||||||
{"id":"40b4c7cf09561259","x":-200,"y":-329,"width":480,"height":309,"type":"text","text":"**Инициализация фронтенда**\n\nНа фронтенде прописаны ВСЕ поля - и обязательные и необязательные. Так же прописано их положение в интерфейсе.\nСо связями и всем прочим. Таким образом мы сильно разгружаемся и ускоряемся.\nПо-умолчанию **все** опциональные поля скрыты."},
|
|
||||||
{"id":"367f62a87583684f","type":"text","text":"**При сохранении черновика**\n\n- на бэкенд летят все данные и все ОПЦИОНАЛЬНЫЕ поля фильтруются сохраняются в отдельные json-ы (в зависимости от родительской сущности)\n- Проходит мягкая валидация (для сохранения)\n\n**При отправке на согласование**\n\n- Происходит сохранение, но со сменой статуса и с другой валидацией каждого поля.","x":-200,"y":400,"width":480,"height":300},
|
|
||||||
{"id":"62eb2ec107a95275","x":-200,"y":20,"width":480,"height":340,"type":"text","text":"**Для новой заявки**\n- при выборе всех нужных опций с сервера запрашивается **список доступных опциональных полей** для данной конфигурации. Просто перечисление того, что включать.\n\n**Для существующей заявки**\n- сразу при загрузке теми же модулями определяются настройки и прилетает уже готовый массив с разрешёнными полями (отдельно от данных). Поля включаются на фронте и в них заносятся данные."},
|
|
||||||
{"id":"4bddbcfea022b3d9","type":"text","text":"**Инициализация фронтенда**\n\nЗдесь нам нужно внедрить **движок рендеринга динамических полей**.\nГрузим фронтенд + запрашиваем массив динамических полей для рендеринга.\nРендерим все обязятельные поля + скрытые опциональные + динамические","x":380,"y":-329,"width":480,"height":309},
|
|
||||||
{"id":"17c527dd91cc0731","type":"text","text":"**При сохранении черновика**\n\n- Работаем так же, как и в MVP, но сохраняем динамические поля в отдельный массив сущности с простейшей валидацией (чтобы не накидали мусора)\n\n**При отправке на согласование**\n\n- Работаем так же, как и в MVP, но сохраняем динамические поля в отдельный массив сущности с защитой от мусора + с нормальной валидацией (тип/обязательность).","x":380,"y":400,"width":480,"height":300},
|
|
||||||
{"id":"dfbf582f578a1414","type":"text","text":"**Для новой заявки**\n- Работаем так же, как и в MVP, но отображаем пользовательские пустые поля.\n\n**Для существующей заявки**\n- Работаем так же, как и в MVP, отображаем пользовательские пустые поля и загружаем в них данные из отдельного массива json сущности.","x":380,"y":20,"width":480,"height":340}
|
|
||||||
],
|
|
||||||
"edges":[
|
|
||||||
{"id":"4fc76ce9d4e61348","fromNode":"40b4c7cf09561259","fromSide":"bottom","toNode":"62eb2ec107a95275","toSide":"top"},
|
|
||||||
{"id":"a3b32f54a016fdba","fromNode":"62eb2ec107a95275","fromSide":"bottom","toNode":"367f62a87583684f","toSide":"top"},
|
|
||||||
{"id":"bf3b6cbb4d2b7d51","fromNode":"4bddbcfea022b3d9","fromSide":"bottom","toNode":"dfbf582f578a1414","toSide":"top"},
|
|
||||||
{"id":"88cf47bf897d2ba9","fromNode":"dfbf582f578a1414","fromSide":"bottom","toNode":"17c527dd91cc0731","toSide":"top"}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
|
||||||
|
- прописать в таблице “распределение данных” внутренние названия всех полей
|
||||||
|
- собрать миграцию данных опциональных полей для ПГО1 (таблица field_optionals)
|
||||||
|
- собрать миграцию данных ПГО1 для “пищевой продукции/биологических материалов”,
|
||||||
|
- доработать и протестировать API-запрос к бэку для возврата опциональных полей
|
||||||
|
- Фронтенд:
|
||||||
|
- сделать скрытыми все поля с лейблами кроме обязательных согласно таблице “распределение данных” (hidden). Возможно, придётся делать блоки поля с лейблом для удобства скрытия.
|
||||||
|
- сделать тег типа у каждого поля/лейбла – “основное”, “опциональное”, “пользовательское”
|
||||||
|
- Функционал показа для новой заявки:
|
||||||
|
- запрос при каждом изменении селектов “Тип ОИ” и “Группа ОИ” к API fields/optional, передавая group_id и object_type
|
||||||
|
- *доработка под тариф в будущем*
|
||||||
|
- после ответа от API отображать полученный список полей (меняем статус видимости)
|
||||||
|
- Переписать миграции для генерации информации тестовой информации не в полях, а в “details” связанных сущностей
|
||||||
|
- Функционал показа существующей заявки:
|
||||||
|
- Массив опциональных полей сразу же запрашивается на этапе формирования данных для фронта для каждой заявки (так мы сможем просто включать поля в БД после доработок)
|
||||||
|
- Все данные опциональных полей перемещаются в поле details сущностей согласно таблице “распределение данных” (на данном этапе либо к request, либо к incoming_object). Это очень простой json массив \[поле => значение\]
|
||||||
|
- Поля включаются так же, как и в новой заявке
|
||||||
|
- Следовательно все данные должны затянуться автоматически из массивов details и показаться в полях
|
||||||
|
|
||||||
|
- Параллельная подготовка бэкенда для распределения и отдачи данных из массивов details + доработка миграций, чтобы переместить динамические данные в details
|
||||||
|
- Подготовка бэкенда к функционалу сохранения динамических полей БЕЗ ВАЛИДАЦИИ (прототип мягкого сохранения)
|
||||||
|
- Фронтенд+бэкенд — обеспечение мягкого сохранения без валидации всех данных в правильные распределённые таблицы и details
|
||||||
|
- Система валидации динамических полей.
|
||||||
|
- Поля из обязательной валидации выпиливаются в опциональную.
|
||||||
|
- Прописываются правила валидации в БД полей через миграции (правила/сообщения)
|
||||||
|
- Движок валидации (принимаем список динамических полей и валидируем)
|
||||||
|
- Здесь каким-то образом надо обеспечить обратную связь с фронтом для подсветки неверных полей + сообщений
|
||||||
|
- Тестирование в комплексе
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"e22a16a2e6c53247","x":40,"y":-760,"width":360,"height":300,"type":"group"},
|
||||||
|
{"id":"7016561d48ff982b","type":"text","text":"Сервис OptionalFieldsService","x":95,"y":-652,"width":250,"height":60,"color":"3"},
|
||||||
|
{"id":"975525ee56508717","type":"text","text":"Сервис\nOrder / Request Service","x":-260,"y":-652,"width":250,"height":60},
|
||||||
|
{"id":"40c24af613dd3270","type":"text","text":"Frontend","x":95,"y":-940,"width":250,"height":60,"color":"5"},
|
||||||
|
{"id":"eaf8029d981c7fde","type":"text","text":"Динамические поля\n\\[\\[object types], \\[gpos\\]]","x":60,"y":-560,"width":320,"height":80},
|
||||||
|
{"id":"7fe6dcb37ae00f3a","type":"text","text":"Контроллер\nOptionalFieldsController","x":95,"y":-740,"width":250,"height":60},
|
||||||
|
{"id":"fdf86c47886dc7a7","type":"text","text":"Группы ОИ","x":380,"y":-270,"width":250,"height":60},
|
||||||
|
{"id":"346bf02d73932212","type":"text","text":"Классификатор продукции\n………..","x":130,"y":-70,"width":250,"height":60},
|
||||||
|
{"id":"a4a06647b44fa5ac","type":"text","text":"Окружающая среда\n……….\n","x":380,"y":-70,"width":250,"height":60},
|
||||||
|
{"id":"a440405c2d30e2c8","type":"text","text":"Производственная среда\n…….","x":630,"y":-70,"width":250,"height":60},
|
||||||
|
{"id":"9fcba45f24a17111","type":"text","text":"Типы ОИ (выбор с фронта)\n1. Продукция\n2. Биологические материалы\n3. Атмосферные\n…….","x":-120,"y":-330,"width":250,"height":180},
|
||||||
|
{"id":"311f4e1efdc5f6ae","type":"text","text":"Пакет Групп Испытаний\n(object group package)","x":380,"y":-420,"width":250,"height":60}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"0c924b9f022d82f3","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"346bf02d73932212","toSide":"top"},
|
||||||
|
{"id":"2cb09cda5fc0e2e2","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"a4a06647b44fa5ac","toSide":"top"},
|
||||||
|
{"id":"4e0c76341c80d465","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"a440405c2d30e2c8","toSide":"top"},
|
||||||
|
{"id":"96590a1f74f044b9","fromNode":"7016561d48ff982b","fromSide":"left","toNode":"975525ee56508717","toSide":"right"},
|
||||||
|
{"id":"375d4c396b3b4d13","fromNode":"975525ee56508717","fromSide":"top","toNode":"40c24af613dd3270","toSide":"left","label":"open"},
|
||||||
|
{"id":"abb0f5b93cbb514f","fromNode":"eaf8029d981c7fde","fromSide":"top","toNode":"7016561d48ff982b","toSide":"bottom"},
|
||||||
|
{"id":"15f10ef4cfa0bee3","fromNode":"9fcba45f24a17111","fromSide":"top","toNode":"eaf8029d981c7fde","toSide":"bottom"},
|
||||||
|
{"id":"8d095bac68164314","fromNode":"311f4e1efdc5f6ae","fromSide":"top","toNode":"eaf8029d981c7fde","toSide":"right"},
|
||||||
|
{"id":"69f142277df11fa4","fromNode":"fdf86c47886dc7a7","fromSide":"top","toNode":"311f4e1efdc5f6ae","toSide":"bottom","label":"m2m ogp to groups"},
|
||||||
|
{"id":"ee33053ddf3dc84e","fromNode":"7016561d48ff982b","fromSide":"top","toNode":"7fe6dcb37ae00f3a","toSide":"bottom"},
|
||||||
|
{"id":"ca97a1d860cb438f","fromNode":"7fe6dcb37ae00f3a","fromSide":"top","toNode":"40c24af613dd3270","toSide":"bottom","label":"ajax on change"}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"63bc932b6e788337","type":"group","x":-751,"y":-349,"width":431,"height":1549,"label":"Типы и хранение данных"},
|
||||||
|
{"id":"90e63a87b404a8ea","type":"group","x":-280,"y":-349,"width":520,"height":1089,"color":"4","label":"Ориентировочный workflow для MVP"},
|
||||||
|
{"id":"82c92d6f3a02a4a6","type":"group","x":280,"y":-349,"width":520,"height":1089,"color":"6","label":"workflow пользовательских полей"},
|
||||||
|
{"id":"65173e51537acb80","type":"text","text":"**Массив обязательных полей.**\nСюда попадают поля, которые не прописаны в БД, не имеют свойств и работают как сейчас.\n\n- Показываются всегда\n- Валидируются в обычном режиме\n- Сохраняются в обычном режиме в поля таблицы заявки/основания\n- Возможен перенос в массивы данных для удобства хранения/добавления","x":-731,"y":-329,"width":391,"height":309,"color":"1"},
|
||||||
|
{"id":"815f80b062c9109e","type":"text","text":"**Массив опциональных полей**\nМногие поля из текущей конфигурации должны перейти в категорию “опциональных”.\n- Поля созданы нами\n- Свойства каждого поля хранятся в БД -\n\t- наименование поля\n\t- внутреннее наименование для синхронизации с фронтедом\n\t- родительская сущность\n\t- привязка к тарифам\n\t- привязка к типу ОИ\n\t- привязка к типу исследований\n\t- привязка к ПГО / ФИЗ\n\t- свойства валидации Laravel Request\n\t\t- при сохранении\n\t\t- при отправке на согласование\n\t\t- текст ошибки для пользователя\n\t- доступность в документах\n\t\t- макрос/код в документах\n\t\t\t- внутренний код / наименование\n\t","x":-731,"y":0,"width":391,"height":620,"color":"4"},
|
||||||
|
{"id":"bb17e362d8091d58","type":"text","text":"**Массив пользовательских полей**\nНе входят в MVP.\nПоля, которые могут создавать и пользователи.\nВключают в себя всё вышеперечисленное, но хранятся ОТДЕЛЬНО и рендерятся на фронте отдельным модулем, потому имеют дополнительные свойства:\n- тип поля (текст, мульти/селект, число, файл, массив)\n- некий движок-конструктор получения данных для селектов\n- индекс отображения/положения в интерфейсе\n- связанное/зависимое поле для валидации\n- привязка к конкретной вкладке на фронте\n- упрощённая валидация (тип поступивших данных/обязательность)\n- данные хранятся в json родительской сущности.","x":-731,"y":640,"width":391,"height":540,"color":"6"},
|
||||||
|
{"id":"40b4c7cf09561259","type":"text","text":"**Инициализация фронтенда**\n\nНа фронтенде прописаны ВСЕ поля - и обязательные и необязательные. Так же прописано их положение в интерфейсе.\nСо связями и всем прочим. Таким образом мы сильно разгружаемся и ускоряемся.\nПо-умолчанию **все** опциональные поля скрыты.","x":-260,"y":-329,"width":480,"height":309},
|
||||||
|
{"id":"62eb2ec107a95275","type":"text","text":"**Для новой заявки**\n- при выборе всех нужных опций с сервера запрашивается **список доступных опциональных полей** для данной конфигурации. Просто перечисление того, что включать.\n\n**Для существующей заявки**\n- сразу при загрузке теми же модулями определяются настройки и прилетает уже готовый массив с разрешёнными полями (отдельно от данных). Поля включаются на фронте и в них заносятся данные.","x":-260,"y":20,"width":480,"height":340},
|
||||||
|
{"id":"367f62a87583684f","type":"text","text":"**При сохранении черновика**\n\n- на бэкенд летят все данные и все ОПЦИОНАЛЬНЫЕ поля фильтруются сохраняются в отдельные json-ы (в зависимости от родительской сущности)\n- Проходит мягкая валидация (для сохранения)\n\n**При отправке на согласование**\n\n- Происходит сохранение, но со сменой статуса и с другой валидацией каждого поля.","x":-260,"y":400,"width":480,"height":300},
|
||||||
|
{"id":"4bddbcfea022b3d9","type":"text","text":"**Инициализация фронтенда**\n\nЗдесь нам нужно внедрить **движок рендеринга динамических полей**.\nГрузим фронтенд + запрашиваем массив динамических полей для рендеринга.\nРендерим все обязятельные поля + скрытые опциональные + динамические","x":300,"y":-329,"width":480,"height":309},
|
||||||
|
{"id":"17c527dd91cc0731","type":"text","text":"**При сохранении черновика**\n\n- Работаем так же, как и в MVP, но сохраняем динамические поля в отдельный массив сущности с простейшей валидацией (чтобы не накидали мусора)\n\n**При отправке на согласование**\n\n- Работаем так же, как и в MVP, но сохраняем динамические поля в отдельный массив сущности с защитой от мусора + с нормальной валидацией (тип/обязательность).","x":300,"y":400,"width":480,"height":300},
|
||||||
|
{"id":"dfbf582f578a1414","type":"text","text":"**Для новой заявки**\n- Работаем так же, как и в MVP, но отображаем пользовательские пустые поля.\n\n**Для существующей заявки**\n- Работаем так же, как и в MVP, отображаем пользовательские пустые поля и загружаем в них данные из отдельного массива json сущности.","x":300,"y":20,"width":480,"height":340}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"4fc76ce9d4e61348","fromNode":"40b4c7cf09561259","fromSide":"bottom","toNode":"62eb2ec107a95275","toSide":"top"},
|
||||||
|
{"id":"a3b32f54a016fdba","fromNode":"62eb2ec107a95275","fromSide":"bottom","toNode":"367f62a87583684f","toSide":"top"},
|
||||||
|
{"id":"bf3b6cbb4d2b7d51","fromNode":"4bddbcfea022b3d9","fromSide":"bottom","toNode":"dfbf582f578a1414","toSide":"top"},
|
||||||
|
{"id":"88cf47bf897d2ba9","fromNode":"dfbf582f578a1414","fromSide":"bottom","toNode":"17c527dd91cc0731","toSide":"top"}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -10,8 +10,8 @@
|
|||||||
{"id":"4c9e712b802ea35e","type":"text","text":"### Подгрузка сохранённых данных\n\nЭту процедуру можно выполнять в предыдущем цикле обработки каждого поля\nСобираются все уникальные значения destination_table у текущих выбранных полей\nДелается выборка по таблицам destination_table по id открытого документа или destination_table.incoming_object.id\nУ выбранных объектов получаются json-массивы сохранённых данных из поля dynamic_data\nКаждое динамическое поле проверяется на соответствие и присутствие в сохранённых данных.\nЕсли данные присутствуют - динамическому полю добавляется поле “value” со значением из документа.\nТаким образом можно собирать данные, присвоенные в совершенно разных динамических полях заявки/документов. Пример сохранённых данных показан ниже","x":600,"y":-260,"width":600,"height":463},
|
{"id":"4c9e712b802ea35e","type":"text","text":"### Подгрузка сохранённых данных\n\nЭту процедуру можно выполнять в предыдущем цикле обработки каждого поля\nСобираются все уникальные значения destination_table у текущих выбранных полей\nДелается выборка по таблицам destination_table по id открытого документа или destination_table.incoming_object.id\nУ выбранных объектов получаются json-массивы сохранённых данных из поля dynamic_data\nКаждое динамическое поле проверяется на соответствие и присутствие в сохранённых данных.\nЕсли данные присутствуют - динамическому полю добавляется поле “value” со значением из документа.\nТаким образом можно собирать данные, присвоенные в совершенно разных динамических полях заявки/документов. Пример сохранённых данных показан ниже","x":600,"y":-260,"width":600,"height":463},
|
||||||
{"id":"d3bed003864f4b06","type":"text","text":"### Форматирование динамических полей\n\nКаждый элемент поля проходит проверку и подготавливается для отправки на фронтэнд.\nПроверяется каждое поле renderData и если есть ключ table, то делается выборка из соответствующей таблицы с параметрами и поле трансформируется в options с готовыми данными.\n\nКаждому полю на фронте присваивается свойство dynamic_control_id, чтобы обработать его данные при сохранении","x":-80,"y":-260,"width":600,"height":463},
|
{"id":"d3bed003864f4b06","type":"text","text":"### Форматирование динамических полей\n\nКаждый элемент поля проходит проверку и подготавливается для отправки на фронтэнд.\nПроверяется каждое поле renderData и если есть ключ table, то делается выборка из соответствующей таблицы с параметрами и поле трансформируется в options с готовыми данными.\n\nКаждому полю на фронте присваивается свойство dynamic_control_id, чтобы обработать его данные при сохранении","x":-80,"y":-260,"width":600,"height":463},
|
||||||
{"id":"36f032eaa8b89a57","type":"text","text":"### Содержание поля dynamic_data у таблиц с данными динамических полей.\n\n```json\n[\n\t{\n\t\t\"id\": \"3\",\n\t\t\"name: \"tn_ved\",\n\t\t\"value\" : \"3022 4433\"\n\t},\n\t{\n\t\t\"id\": \"7\",\n\t\t\"name: \"storage_conditions\",\n\t\t\"value\" : \"Пакет целлофановый\"\n\t},\n\t{\n\t\t\"id\": \"9\",\n\t\t\"name: \"trials_in_OA_range\",\n\t\t\"value\" : true\n\t},\n]\n```","x":-400,"y":283,"width":535,"height":517},
|
{"id":"36f032eaa8b89a57","type":"text","text":"### Содержание поля dynamic_data у таблиц с данными динамических полей.\n\n```json\n[\n\t{\n\t\t\"id\": \"3\",\n\t\t\"name: \"tn_ved\",\n\t\t\"value\" : \"3022 4433\"\n\t},\n\t{\n\t\t\"id\": \"7\",\n\t\t\"name: \"storage_conditions\",\n\t\t\"value\" : \"Пакет целлофановый\"\n\t},\n\t{\n\t\t\"id\": \"9\",\n\t\t\"name: \"trials_in_OA_range\",\n\t\t\"value\" : true\n\t},\n]\n```","x":-400,"y":283,"width":535,"height":517},
|
||||||
{"id":"4aefb6d2d59c1c9a","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/modules_to_dyn_controls.md","x":-960,"y":-1309,"width":760,"height":669},
|
{"id":"4aefb6d2d59c1c9a","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/modules_to_dyn_controls.md","x":-960,"y":-1309,"width":760,"height":669},
|
||||||
{"id":"330a5e6e96216ba6","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/pgo_to_groups.md","x":-1500,"y":-1206,"width":400,"height":464},
|
{"id":"330a5e6e96216ba6","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/pgo_to_groups.md","x":-1500,"y":-1206,"width":400,"height":464},
|
||||||
{"id":"68b998893332eba2","type":"text","text":"trials_type\n1 - Лабораторные\n2 - Выездные","x":-560,"y":-1440,"width":250,"height":103},
|
{"id":"68b998893332eba2","type":"text","text":"trials_type\n1 - Лабораторные\n2 - Выездные","x":-560,"y":-1440,"width":250,"height":103},
|
||||||
{"id":"3c06fbe8ba52b772","type":"text","text":"### Отправка данных на backend\n\nС фронтенда прилетают данные полей со свойством dynamic_control_id и value","x":-1120,"y":940,"width":600,"height":380},
|
{"id":"3c06fbe8ba52b772","type":"text","text":"### Отправка данных на backend\n\nС фронтенда прилетают данные полей со свойством dynamic_control_id и value","x":-1120,"y":940,"width":600,"height":380},
|
||||||
{"id":"2f8ebcf398e207de","type":"text","text":"### Формирование и сохранение массива данных\n\nДелается выборка полей id, name, destination_table из таблицы dynamic_control_id из массива всех полученных dynamic_control_id\n\nСобирается несколько массивов dynamic_data с группировкой по destination_table\nПроходя по каждой записи destination_table выбирается объект для записи из таблицы по текущему incoming_object_id (прилетает с фронтенда или создаётся при первичном сохранении).\nТекущий массив данных сохраняется в поле dynamic_data в таблицу destination_table","x":340,"y":940,"width":600,"height":380},
|
{"id":"2f8ebcf398e207de","type":"text","text":"### Формирование и сохранение массива данных\n\nДелается выборка полей id, name, destination_table из таблицы dynamic_control_id из массива всех полученных dynamic_control_id\n\nСобирается несколько массивов dynamic_data с группировкой по destination_table\nПроходя по каждой записи destination_table выбирается объект для записи из таблицы по текущему incoming_object_id (прилетает с фронтенда или создаётся при первичном сохранении).\nТекущий массив данных сохраняется в поле dynamic_data в таблицу destination_table","x":340,"y":940,"width":600,"height":380},
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
{"id":"2ec086ec8e32925e","type":"text","text":"Сформировать первичные данные таблиц pgo_to_groups, dynamic_controls_table и modules_to_dyn_controls, необходимые для отображения/сохранения данных по текущим данным. Для начала вручную. Можно задуматься о ТЗ редактора :)","x":-782,"y":1510,"width":1342,"height":70},
|
{"id":"2ec086ec8e32925e","type":"text","text":"Сформировать первичные данные таблиц pgo_to_groups, dynamic_controls_table и modules_to_dyn_controls, необходимые для отображения/сохранения данных по текущим данным. Для начала вручную. Можно задуматься о ТЗ редактора :)","x":-782,"y":1510,"width":1342,"height":70},
|
||||||
{"id":"ddb16308453a51d9","type":"text","text":"Продумать поддержку зависимости от объектов, глубже incoming_object (Испытания/протоколы)","x":-779,"y":1580,"width":1339,"height":60},
|
{"id":"ddb16308453a51d9","type":"text","text":"Продумать поддержку зависимости от объектов, глубже incoming_object (Испытания/протоколы)","x":-779,"y":1580,"width":1339,"height":60},
|
||||||
{"id":"e968c77fea8190c3","type":"text","text":"Валидация полей","x":-779,"y":1640,"width":1339,"height":60},
|
{"id":"e968c77fea8190c3","type":"text","text":"Валидация полей","x":-779,"y":1640,"width":1339,"height":60},
|
||||||
{"id":"b630f9de672de8d5","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/dynamic_controls_table.md","x":-40,"y":-1349,"width":1360,"height":749}
|
{"id":"b630f9de672de8d5","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/dynamic_controls_table.md","x":-40,"y":-1349,"width":1360,"height":749}
|
||||||
],
|
],
|
||||||
"edges":[
|
"edges":[
|
||||||
{"id":"15a75fcef9b6166b","fromNode":"4aefb6d2d59c1c9a","fromSide":"right","toNode":"b630f9de672de8d5","toSide":"left"},
|
{"id":"15a75fcef9b6166b","fromNode":"4aefb6d2d59c1c9a","fromSide":"right","toNode":"b630f9de672de8d5","toSide":"left"},
|
||||||
@@ -33,7 +33,7 @@ a.dianova z2JeiSHVTP0sTlt6 Анна Дианова
|
|||||||
|
|
||||||
a.popov Js5hBS4LFogvztmb Александр Попов
|
a.popov Js5hBS4LFogvztmb Александр Попов
|
||||||
a.milekhin kbn9VN5NsY8R2md2 Алексей Милехин
|
a.milekhin kbn9VN5NsY8R2md2 Алексей Милехин
|
||||||
e.fastov sgwhd1x4WZFsllMt Евгений Фастов
|
e.fastov f8npfh4g6FmCSgt Евгений Фастов
|
||||||
a.belov dSfI95ynDhu2MdIj Алексей Белов
|
a.belov dSfI95ynDhu2MdIj Алексей Белов
|
||||||
|
|
||||||
Технические ящики:
|
Технические ящики:
|
||||||
|
|||||||
108
WORK & PROJECTS/UAS/MAIL TRANSFER.md
Normal file
108
WORK & PROJECTS/UAS/MAIL TRANSFER.md
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
Входящие gmail
|
||||||
|
```bash
|
||||||
|
./imapsync \
|
||||||
|
--host1 imap.gmail.com \
|
||||||
|
--port1 993 \
|
||||||
|
--ssl1 \
|
||||||
|
--user1 uralavtostroymiass@gmail.com \
|
||||||
|
--password1 'impj rmyc ecwl cqeq' \
|
||||||
|
--host2 localhost \
|
||||||
|
--user2 sales@1-agent.ru \
|
||||||
|
--password2 'sinkhrotsiklOtron6107' \
|
||||||
|
--ssl2 \
|
||||||
|
--gmail1 \
|
||||||
|
--folder "INBOX" \
|
||||||
|
--syncinternaldates \
|
||||||
|
--useuid \
|
||||||
|
--maxage 120
|
||||||
|
```
|
||||||
|
Входящие mail
|
||||||
|
```bash
|
||||||
|
./imapsync \
|
||||||
|
--host1 imap.mail.ru \
|
||||||
|
--user1 bid.group@mail.ru \
|
||||||
|
--password1 'YvabfX1ZfXeZfcmeKhPT' \
|
||||||
|
--ssl1 \
|
||||||
|
--host2 localhost \
|
||||||
|
--user2 info@bid-group74.ru \
|
||||||
|
--password2 'xp7h2vWGkM6Cny2' \
|
||||||
|
--ssl2 \
|
||||||
|
--exclude "&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-" \
|
||||||
|
--exclude "&BCEEPwQwBDw-" \
|
||||||
|
--exclude "Infected Items" \
|
||||||
|
--exclude "&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-" \
|
||||||
|
--exclude "&BCcENQRABD0EPgQyBDgEOgQ4-" \
|
||||||
|
--exclude "Archive" \
|
||||||
|
--exclude "Junk" \
|
||||||
|
--syncinternaldates \
|
||||||
|
--useuid \
|
||||||
|
--search "ALL"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
тест папок через ssl
|
||||||
|
|
||||||
|
```bash
|
||||||
|
openssl s_client -connect imap.mail.com:993 -crlf -quiet
|
||||||
|
|
||||||
|
a LOGIN trest_zhanna@mail.ru 0SLrC2Re6DbRxNgELzeI
|
||||||
|
b LIST "" "*"
|
||||||
|
c LOGOUT
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Отправленные gmail
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./imapsync \
|
||||||
|
--host1 imap.gmail.com \
|
||||||
|
--port1 993 \
|
||||||
|
--ssl1 \
|
||||||
|
--user1 uralavtostroymiass@gmail.com \
|
||||||
|
--password1 'impj rmyc ecwl cqeq' \
|
||||||
|
--host2 localhost \
|
||||||
|
--user2 sales@1-agent.ru \
|
||||||
|
--password2 'sinkhrotsiklOtron6107' \
|
||||||
|
--ssl2 \
|
||||||
|
--gmail1 \
|
||||||
|
--folder "[Gmail]/&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-" \
|
||||||
|
--regextrans2 "s/\[Gmail\]\/&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-/Sent/" \
|
||||||
|
--syncinternaldates \
|
||||||
|
--useuid
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Отправленные mail
|
||||||
|
```bash
|
||||||
|
./imapsync \
|
||||||
|
--host1 imap.mail.ru \
|
||||||
|
--user1 bid.group@mail.ru \
|
||||||
|
--password1 'YvabfX1ZfXeZfcmeKhPT' \
|
||||||
|
--ssl1 \
|
||||||
|
--host2 localhost \
|
||||||
|
--user2 info@bid-group74.ru \
|
||||||
|
--password2 'xp7h2vWGkM6Cny2' \
|
||||||
|
--ssl2 \
|
||||||
|
--folder "&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-" \
|
||||||
|
--regextrans2 "s/&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-/Sent/" \
|
||||||
|
--syncinternaldates \
|
||||||
|
--useuid
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
uas-chel@mail.ru
|
||||||
|
ZCgyiYVlMRPYRDfaZj31
|
||||||
|
|
||||||
|
info@uralav.ru
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
bid.group@mail.ru
|
||||||
|
info@bid-group74.ru
|
||||||
|
YvabfX1ZfXeZfcmeKhPT
|
||||||
|
```
|
||||||
@@ -1,3 +1,18 @@
|
|||||||
- mail server
|
- mail server
|
||||||
|
- счёт
|
||||||
|
- полная настройка
|
||||||
- почистить хостинг
|
- почистить хостинг
|
||||||
-
|
- определить возможность интеграции файлового хранилища и документов в АСПРО + нужность ухода от гугл-таблиц
|
||||||
|
- перенос номеров ВАТС Ростелекома на другого провайдера и интеграция с АСПРО
|
||||||
|
- управление контентом передаём Саше
|
||||||
|
- разобраться с доменами и полностью с контентом (ждём бриф)
|
||||||
|
- интеграция с profitbase
|
||||||
|
- протестировать nextcloud
|
||||||
|
|
||||||
|
02.02 — 06.02
|
||||||
|
- БП работы с претензиями в Аспро
|
||||||
|
- почтовый сервер
|
||||||
|
- Узнать про корпоративные телефоны
|
||||||
|
- добавить камеру ezviz в приложение
|
||||||
|
- Сформировать ТЗ для сайтов на основе брифа Мадины
|
||||||
|
-
|
||||||
61
WORK & PROJECTS/UAS/Servers access.md
Normal file
61
WORK & PROJECTS/UAS/Servers access.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
# **62.109.11.45**
|
||||||
|
|
||||||
|
#### root
|
||||||
|
HQZr7Lr7ebS8YV00HyQv+
|
||||||
|
|
||||||
|
#### uasadmin
|
||||||
|
f,hfrflf,hf8
|
||||||
|
|
||||||
|
|
||||||
|
### **mysql**
|
||||||
|
#### root
|
||||||
|
Vw5hQ330KxObJBW
|
||||||
|
#### ncuser
|
||||||
|
7WQUJHV9kBr7kUO
|
||||||
|
nextcloud_db
|
||||||
|
|
||||||
|
#### mailuser
|
||||||
|
eVtwV69blrVXcho
|
||||||
|
|
||||||
|
### postgres
|
||||||
|
onlyoffice
|
||||||
|
MTV8LgdnUtZ1B79
|
||||||
|
|
||||||
|
### NextCloud
|
||||||
|
admin
|
||||||
|
LPNCM3SEdwnVj8c
|
||||||
|
|
||||||
|
### postfixadmin
|
||||||
|
#### setup password
|
||||||
|
9q8Vteep4DKLk9MloDZsiUndEuGg4yJ
|
||||||
|
|
||||||
|
https://mailadmin.1-agent.ru/
|
||||||
|
`admin@1-agent.ru`
|
||||||
|
aH8thcQ5gOJ99bzNGN3h
|
||||||
|
|
||||||
|
notify@1-agent.ru
|
||||||
|
neVospolnimost9901
|
||||||
|
|
||||||
|
YWRtaW5AMS1hZ2VudC5ydQ==
|
||||||
|
YUg4dGhjUTVnT0o5OWJ6TkdOM2g=
|
||||||
|
|
||||||
|
RCPT TO: <s0nic000@yandex.ru>
|
||||||
|
|
||||||
|
`AUTH PLAIN XDBhZG1pbkAxLWFnZW50LnJ1XDBhSDh0aGNRNWdPSjk5YnpOR04zaA==`
|
||||||
|
|
||||||
|
aH8thcQ5gOJ99bzNGN3h
|
||||||
|
|
||||||
|
|
||||||
|
swaks --to test-fsp4ilqyd@srv1.mail-tester.com \
|
||||||
|
--from admin@1-agent.ru \
|
||||||
|
--server mail.1-agent.ru \
|
||||||
|
--port 587 \
|
||||||
|
--tls \
|
||||||
|
--auth LOGIN \
|
||||||
|
--auth-user admin@1-agent.ru \
|
||||||
|
--auth-password "aH8thcQ5gOJ99bzNGN3h"
|
||||||
|
|
||||||
|
|
||||||
|
v.vedernikova@1-agent.ru
|
||||||
|
hCM6CVqSV0D1xVr7vDXY
|
||||||
18
WORK & PROJECTS/UAS/Untitled.canvas
Normal file
18
WORK & PROJECTS/UAS/Untitled.canvas
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"720a8218c07a3e1d","type":"group","x":-640,"y":-760,"width":280,"height":190,"label":"Свободные домены"},
|
||||||
|
{"id":"b8bdf8a176ef28af","type":"text","text":"BID GROUP (Строит в Миассе) + перенаправление на сайт агентства и виджет\nbid-group74.ru","x":200,"y":-940,"width":400,"height":94,"color":"4"},
|
||||||
|
{"id":"904d9482cef0e037","type":"text","text":"Агентство (Уралавтострой и БИД) + виджет выбора квартир\nuralav.ru\n","x":-250,"y":-940,"width":380,"height":94,"color":"3"},
|
||||||
|
{"id":"de65ae8c19a7114f","type":"text","text":"Уралавтострой + перенаправление на сайт агентства и виджет\n????.ru","x":-680,"y":-940,"width":360,"height":94,"color":"1"},
|
||||||
|
{"id":"7a754acef3d80d6c","x":-185,"y":-760,"width":250,"height":60,"type":"text","text":"виджет выбора квартир ProfitBase"},
|
||||||
|
{"id":"99bc662973f79d25","type":"text","text":"трестуас.рф","x":-620,"y":-740,"width":240,"height":50,"color":"5"},
|
||||||
|
{"id":"401c41c7a7279d55","type":"text","text":"uralavtostroy.ru","x":-620,"y":-690,"width":240,"height":50,"color":"5"},
|
||||||
|
{"id":"5234020b450df41f","type":"text","text":"uas-chel74.ru","x":-620,"y":-640,"width":240,"height":50,"color":"5"}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"8494f027b21789c9","fromNode":"de65ae8c19a7114f","fromSide":"right","toNode":"904d9482cef0e037","toSide":"left"},
|
||||||
|
{"id":"0d25895daa32324c","fromNode":"b8bdf8a176ef28af","fromSide":"left","toNode":"904d9482cef0e037","toSide":"right"},
|
||||||
|
{"id":"2851fdbb7c7d4f06","fromNode":"904d9482cef0e037","fromSide":"bottom","toNode":"7a754acef3d80d6c","toSide":"top"},
|
||||||
|
{"id":"9022b3f46d9e264a","fromNode":"720a8218c07a3e1d","fromSide":"top","toNode":"de65ae8c19a7114f","toSide":"bottom"}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
29
Без названия.md
Normal file
29
Без названия.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Encoder
|
||||||
|
participant File as "RLE File"
|
||||||
|
participant Decoder
|
||||||
|
Encoder->>File: write header (Type, Mode, ID, Size)
|
||||||
|
Encoder->>File: emit literal packet (count-1 + literals)
|
||||||
|
Encoder->>File: emit run packet (0x7D + N, byte or offset)
|
||||||
|
Encoder->>File: emit backref packet (0x7E + len, distance-1)
|
||||||
|
File->>Decoder: provide packet stream
|
||||||
|
Decoder->>Decoder: if control < 0x80 → copy (control+1) literals
|
||||||
|
Decoder->>Decoder: else → read param; if run → repeat byte; if backref → copy from output buffer
|
||||||
|
Decoder-->>File: produce decompressed bytes (output)
|
||||||
|
```
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Encoder
|
||||||
|
participant File as "RLE File"
|
||||||
|
participant Decoder
|
||||||
|
Encoder->>File: write header (Type, Mode, ID, Size)
|
||||||
|
Encoder->>File: emit literal packet (count-1 + literals)
|
||||||
|
Encoder->>File: emit run packet (0x7D + N, byte or offset)
|
||||||
|
Encoder->>File: emit backref packet (0x7E + len, distance-1)
|
||||||
|
File->>Decoder: provide packet stream
|
||||||
|
Decoder->>Decoder: if control < 0x80 → copy (control+1) literals
|
||||||
|
Decoder->>Decoder: else → read param; if run → repeat byte; if backref → copy from output buffer
|
||||||
|
Decoder-->>File: produce decompressed bytes (output)
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user