mirror of
https://github.com/Dvorinka/ZoneramaScraper.git
synced 2026-06-05 04:42:58 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,144 @@
|
|||||||
|
# ZoneramaScraper API
|
||||||
|
|
||||||
|
This service scrapes album and photo metadata from public Zonerama pages.
|
||||||
|
|
||||||
|
- Base URL: `http://localhost:8080`
|
||||||
|
- CORS: `Access-Control-Allow-Origin: *`
|
||||||
|
- Default rendering: JavaScript rendering is ON by default (uses a local Chrome). You can disable it per request.
|
||||||
|
- Debugging: When `debug=true`, fetched HTML is saved under `debuging/` and served from `GET /debuging/`.
|
||||||
|
|
||||||
|
## Endpoints
|
||||||
|
|
||||||
|
- GET `/zonerama`
|
||||||
|
- GET `/zonerama-album`
|
||||||
|
|
||||||
|
Both endpoints return JSON.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET /zonerama
|
||||||
|
Scrape albums and their photos starting from a Zonerama profile or page link. The router auto-detects if the provided link is a profile (account) or a single album and proceeds accordingly.
|
||||||
|
|
||||||
|
Query parameters:
|
||||||
|
- `link` (required): A Zonerama URL.
|
||||||
|
- Examples: `https://eu.zonerama.com/<Account>/<TabId>` or a profile URL.
|
||||||
|
- `album_limit` (optional, int): Maximum number of albums to process from a profile. Default: `5`. `0` = no limit.
|
||||||
|
- `photo_limit` (optional, int): Maximum photos to collect per album. Default: `10`. `0` = no limit.
|
||||||
|
- `rendered` (optional, bool): Enable/disable JS rendering. Default: `true`.
|
||||||
|
- Aliases to disable rendering: `no-render=true` or `no_render=true`.
|
||||||
|
- `concurrency` (optional, int): Max concurrent album fetches when rendering. Default: `8` (capped by `album_limit`).
|
||||||
|
- `debug` (optional, bool): If `true`, saves fetched HTML into `debuging/` and serves via `GET /debuging/`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
GET /zonerama?link=https://eu.zonerama.com/SomeAccount/1419417&album_limit=3&photo_limit=25
|
||||||
|
```
|
||||||
|
|
||||||
|
Response shape:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"input_link": "https://eu.zonerama.com/SomeAccount/1419417",
|
||||||
|
"albums": [
|
||||||
|
{
|
||||||
|
"id": "13903610",
|
||||||
|
"title": "Trip",
|
||||||
|
"url": "https://eu.zonerama.com/SomeAccount/Album/13903610",
|
||||||
|
"date": "20. 9. 2025",
|
||||||
|
"photos_count": 42,
|
||||||
|
"views_count": 1234,
|
||||||
|
"photos": [
|
||||||
|
{ "id": "1234567", "page_url": "/Photo/13903610/1234567", "image_1500": "https://eu.zonerama.com/photos/1234567_1500x1000.jpg" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
- Albums are sorted descending by date when dates can be parsed; otherwise by title.
|
||||||
|
- Photo URLs are normalized to `https://{host}/photos/{photoID}_1500x1000.jpg`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET /zonerama-album
|
||||||
|
Scrape a single album by URL (the link must contain `/Album/`).
|
||||||
|
|
||||||
|
Query parameters:
|
||||||
|
- `link` (required): A Zonerama album URL.
|
||||||
|
- Example: `https://eu.zonerama.com/<Account>/Album/<AlbumId>`
|
||||||
|
- `photo_limit` (optional, int): Maximum photos to collect from the album. Default: `10`. `0` = no limit.
|
||||||
|
- `rendered` (optional, bool): Enable/disable JS rendering. Default: `true`.
|
||||||
|
- Aliases to disable: `no-render=true` or `no_render=true`.
|
||||||
|
- `debug` (optional, bool): If `true`, saves fetched HTML into `debuging/` and serves via `GET /debuging/`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
GET /zonerama-album?link=https://eu.zonerama.com/SomeAccount/Album/13903610&photo_limit=25
|
||||||
|
```
|
||||||
|
|
||||||
|
Response shape:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"input_link": "https://eu.zonerama.com/SomeAccount/Album/13903610",
|
||||||
|
"albums": [
|
||||||
|
{
|
||||||
|
"id": "13903610",
|
||||||
|
"title": "Trip",
|
||||||
|
"url": "https://eu.zonerama.com/SomeAccount/Album/13903610",
|
||||||
|
"date": "20. 9. 2025",
|
||||||
|
"photos_count": 42,
|
||||||
|
"views_count": 1234,
|
||||||
|
"photos": [
|
||||||
|
{ "id": "1234567", "page_url": "/Photo/13903610/1234567", "image_1500": "https://eu.zonerama.com/photos/1234567_1500x1000.jpg" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Data models
|
||||||
|
|
||||||
|
Album:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "string",
|
||||||
|
"title": "string",
|
||||||
|
"url": "string",
|
||||||
|
"date": "string (optional)",
|
||||||
|
"photos_count": "int (optional)",
|
||||||
|
"views_count": "int (optional)",
|
||||||
|
"photos": [Photo]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Photo:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "string",
|
||||||
|
"page_url": "string (optional)",
|
||||||
|
"image_1500": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Root response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"input_link": "string",
|
||||||
|
"albums": [Album]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Accounts vs Albums
|
||||||
|
- An "account" (profile) page lists albums. Use `/zonerama` with a profile URL to fetch albums for that account.
|
||||||
|
- An "album" page shows photos. Use `/zonerama-album` or `/zonerama` with an album URL.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Operational notes
|
||||||
|
- Requires Go 1.22+.
|
||||||
|
- JS rendering requires a local Chrome installation available to the geziyor renderer.
|
||||||
|
- Debug files are written to the `debuging/` directory.
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# Zonerama Scraper (Go + Geziyor)
|
||||||
|
|
||||||
|
Blazing-fast JSON API to scrape Zonerama albums and photos using [geziyor/geziyor](https://github.com/geziyor/geziyor).
|
||||||
|
|
||||||
|
- Input: Zonerama profile/link page, e.g. `https://eu.zonerama.com/Fcbizoni/1419417`
|
||||||
|
- Output: JSON listing albums and photos.
|
||||||
|
- Photo links are normalized to `https://eu.zonerama.com/photos/{photoID}_1500x1000.jpg`.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
- Go 1.22+
|
||||||
|
|
||||||
|
## Install deps
|
||||||
|
```
|
||||||
|
go get -u github.com/geziyor/geziyor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run the server
|
||||||
|
```
|
||||||
|
go run ./...
|
||||||
|
```
|
||||||
|
The server listens on `http://localhost:8080`.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
See full endpoint reference in `API.md`.
|
||||||
|
|
||||||
|
### Endpoints
|
||||||
|
- `/zonerama`
|
||||||
|
- `/zonerama-album`
|
||||||
|
|
||||||
|
### Common query parameters
|
||||||
|
- `rendered` (bool, default: `true`) — Enable/disable JS rendering. Aliases: `no-render=true` or `no_render=true` to disable.
|
||||||
|
- `debug` (bool, default: `false`) — If `true`, saves fetched HTML into `debuging/` and serves at `/debuging/`.
|
||||||
|
|
||||||
|
### /zonerama
|
||||||
|
Scrape albums and their photos starting from a Zonerama profile (account) or page URL.
|
||||||
|
|
||||||
|
Params:
|
||||||
|
- `link` (required): A Zonerama URL (profile or album link)
|
||||||
|
- `album_limit` (int, default: `5`): Max albums to process from a profile (`0` = no limit)
|
||||||
|
- `photo_limit` (int, default: `10`): Max photos per album (`0` = no limit)
|
||||||
|
- `concurrency` (int, default: `8`): Max concurrent album fetches when rendering (capped by `album_limit`)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
curl "http://localhost:8080/zonerama?link=https://eu.zonerama.com/Fcbizoni/1419417&album_limit=3&photo_limit=25" | jq .
|
||||||
|
```
|
||||||
|
|
||||||
|
### /zonerama-album
|
||||||
|
Scrape a single album by URL (link must contain `/Album/`).
|
||||||
|
|
||||||
|
Params:
|
||||||
|
- `link` (required): `https://eu.zonerama.com/<Account>/Album/<AlbumId>`
|
||||||
|
- `photo_limit` (int, default: `10`): Max photos from the album (`0` = no limit)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
curl "http://localhost:8080/zonerama-album?link=https://eu.zonerama.com/SomeAccount/Album/13903610&photo_limit=25" | jq .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
- This scraper parses:
|
||||||
|
- Albums from the main/profile page by selecting `li.list-alb` and reading `data-url` or the nested anchor `href`.
|
||||||
|
- Photos from each album page via `div.gallery-inner[data-type='photo']` and its `data-id` (photo ID).
|
||||||
|
- For each photo ID, it builds `https://{host}/photos/{id}_1500x1000.jpg`.
|
||||||
|
- If Zonerama changes their HTML structure, selectors may need to be updated.
|
||||||
|
|
||||||
|
Server starts at `:8080`. CORS is enabled.
|
||||||
|
|
||||||
|
For full details and response schemas, see `API.md`.
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
Be respectful of Zonerama's terms of service and rate limits. This project is for educational purposes.
|
||||||
+1835
File diff suppressed because it is too large
Load Diff
+556
@@ -0,0 +1,556 @@
|
|||||||
|
<div>
|
||||||
|
|
||||||
|
<ul id="AlbumsInTab-tab1470757-albums" class="thumbnails list-unstyled list-albs list-albs-profile" data-object="flowLayout" data-layout-url="/JSON/FlowLayout_AlbumsInTab?tabId=1470757" data-layout-oncreate="Zonerama.Page.Profile.createItems(this,arguments[0])" data-layout-options="={ margin: 20, maxRowHeight: 428, minItemsOnRow: 1, maxItemsOnRow: 5, ratio: (560/428), onInit: _flowLayout_Tab1470757_OnInit }" data-layout-type="=Zonerama.FlowLayouts.get('rect')" data-layout-threshold="2000" data-layout-oninit="_flowLayout_Tab1470757_Init()" data-object-created="true" style="height: 7310px;"><li class="list-alb" style="position: absolute; top: 1910px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13796374" data-album-number="15" data-album-id="13796374" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13796374" class="thumbnail" title="Kategorie U14 FK Krnov 2:6 Valašské Meziříčí">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 2:6 Valašské Meziříčí
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>30. 8. 2025 |
|
||||||
|
<span>33</span> <i class="za-icon icon-images"></i> | <span>33</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1910px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13796675" data-album-number="14" data-album-id="13796675" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13796675" class="thumbnail" title="Kategorie U15 FK Krnov 4:1 Valašské Meziříčí">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 4:1 Valašské Meziříčí
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>30. 8. 2025 |
|
||||||
|
<span>122</span> <i class="za-icon icon-images"></i> | <span>55</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1640px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13817517" data-album-number="13" data-album-id="13817517" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13817517" class="thumbnail" title="Kategorie U14 FK Krnov 0:22 Uničov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 0:22 Uničov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>3. 9. 2025 |
|
||||||
|
<span>39</span> <i class="za-icon icon-images"></i> | <span>8</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1640px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13817609" data-album-number="12" data-album-id="13817609" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13817609" class="thumbnail" title="Kategorie U15 FK Krnov 2:2 Uničov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:2 Uničov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>3. 9. 2025 |
|
||||||
|
<span>75</span> <i class="za-icon icon-images"></i> | <span>11</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1370px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13821005" data-album-number="11" data-album-id="13821005" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13821005" class="thumbnail" title="Katgorie U9 FK Krnov 22:3 Holasovice">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Katgorie U9 FK Krnov 22:3 Holasovice
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>5. 9. 2025 |
|
||||||
|
<span>47</span> <i class="za-icon icon-images"></i> | <span>20</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1370px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13825015" data-album-number="10" data-album-id="13825015" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13825015" class="thumbnail" title="Kategorie U14 FK Krnov 2:5 Šumperk">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 2:5 Šumperk
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>6. 9. 2025 |
|
||||||
|
<span>61</span> <i class="za-icon icon-images"></i> | <span>25</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1100px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13825217" data-album-number="9" data-album-id="13825217" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13825217" class="thumbnail" title="Kategorie U15 FK Krnov 2:6 Šumperk">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:6 Šumperk
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>6. 9. 2025 |
|
||||||
|
<span>98</span> <i class="za-icon icon-images"></i> | <span>64</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1100px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829100" data-album-number="8" data-album-id="13829100" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829100" class="thumbnail" title="Kategorie U17 FK Kofola Krnov 3:4 FC Odra Petřkovice">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U17 FK Kofola Krnov 3:4 FC Odra Petřkovice
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>83</span> <i class="za-icon icon-images"></i> | <span>64</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 830px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829315" data-album-number="7" data-album-id="13829315" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829315" class="thumbnail" title="Kategorie U13 FK Krnov 2:13 Třinec">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U13 FK Krnov 2:13 Třinec
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>73</span> <i class="za-icon icon-images"></i> | <span>22</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 327px; height: 250px;">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 830px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829605" data-album-number="6" data-album-id="13829605" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829605" class="thumbnail" title="Kategorie muži Město Albrechtice 2:2 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie muži Město Albrechtice 2:2 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>110</span> <i class="za-icon icon-images"></i> | <span>144</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 327px; height: 250px;">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 560px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13869074" data-album-number="5" data-album-id="13869074" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13869074" class="thumbnail" title="Kategorie U14 Bílovec 11:3 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 Bílovec 11:3 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>13. 9. 2025 |
|
||||||
|
<span>39</span> <i class="za-icon icon-images"></i> | <span>25</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 327px; height: 250px;">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 560px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13869180" data-album-number="4" data-album-id="13869180" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13869180" class="thumbnail" title="Kategorie U15 Bílovec 9:4 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 Bílovec 9:4 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>13. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>35</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 290px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13883373" data-album-number="3" data-album-id="13883373" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13883373" class="thumbnail" title="Kategorie U15 Třinec 1:4 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 Třinec 1:4 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>17. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>32</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 290px; left: 20px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13903599" data-album-number="2" data-album-id="13903599" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903599" class="thumbnail" title="Kategorie U14 FK Krnov 1:12 Nový Jičín">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 1:12 Nový Jičín
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>20. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>21</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 20px; left: 367px; width: 327px; height: 250px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610" data-album-number="1" data-album-id="13903610" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 327px; height: 250px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610" class="thumbnail" title="Kategorie U15 FK Krnov 2:5 Nový Jičín">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:5 Nový Jičín
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>20. 9. 2025 |
|
||||||
|
<span>101</span> <i class="za-icon icon-images"></i> | <span>23</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 327px; height: 250px;">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
module zonerama
|
||||||
|
|
||||||
|
go 1.25
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/PuerkitoBio/goquery v1.10.3 // indirect
|
||||||
|
github.com/VividCortex/gohistogram v1.0.0 // indirect
|
||||||
|
github.com/andybalholm/cascadia v1.3.3 // indirect
|
||||||
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
github.com/chromedp/cdproto v0.0.0-20250803210736-d308e07a266d // indirect
|
||||||
|
github.com/chromedp/chromedp v0.14.1 // indirect
|
||||||
|
github.com/chromedp/sysutil v1.1.0 // indirect
|
||||||
|
github.com/geziyor/geziyor v0.0.0-20240812061556-229b8ca83ac1 // indirect
|
||||||
|
github.com/go-json-experiment/json v0.0.0-20250910080747-cc2cfa0554c3 // indirect
|
||||||
|
github.com/go-kit/kit v0.13.0 // indirect
|
||||||
|
github.com/gobwas/httphead v0.1.0 // indirect
|
||||||
|
github.com/gobwas/pool v0.2.1 // indirect
|
||||||
|
github.com/gobwas/ws v1.4.0 // indirect
|
||||||
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
|
github.com/mailru/easyjson v0.9.1 // indirect
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
|
github.com/prometheus/client_golang v1.23.2 // indirect
|
||||||
|
github.com/prometheus/client_model v0.6.2 // indirect
|
||||||
|
github.com/prometheus/common v0.66.1 // indirect
|
||||||
|
github.com/prometheus/procfs v0.17.0 // indirect
|
||||||
|
github.com/temoto/robotstxt v1.1.2 // indirect
|
||||||
|
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
||||||
|
golang.org/x/net v0.44.0 // indirect
|
||||||
|
golang.org/x/sys v0.36.0 // indirect
|
||||||
|
golang.org/x/text v0.29.0 // indirect
|
||||||
|
golang.org/x/time v0.13.0 // indirect
|
||||||
|
google.golang.org/protobuf v1.36.9 // indirect
|
||||||
|
)
|
||||||
@@ -0,0 +1,779 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/sha1"
|
||||||
|
"encoding/hex"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
|
"sort"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/PuerkitoBio/goquery"
|
||||||
|
"github.com/geziyor/geziyor"
|
||||||
|
"github.com/geziyor/geziyor/client"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Data models for JSON response
|
||||||
|
|
||||||
|
type Photo struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
PageURL string `json:"page_url,omitempty"`
|
||||||
|
Image1500 string `json:"image_1500"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// zoneramaAlbumHandler parses a single album only when the link contains "/Album/".
|
||||||
|
func zoneramaAlbumHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
|
||||||
|
link := r.URL.Query().Get("link")
|
||||||
|
if link == "" {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "missing link param: /zonerama-album?link=https://eu.zonerama.com/<Account>/Album/<AlbumId>"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
u, err := url.Parse(link)
|
||||||
|
if err != nil || (u.Scheme != "http" && u.Scheme != "https") {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "invalid link URL"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !strings.Contains(u.Host, "zonerama.com") {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "link must point to zonerama.com"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !strings.Contains(u.Path, "/Album/") {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "zonerama-album expects an album link containing /Album/"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Limits
|
||||||
|
photoLimit := 10 // default 10; 0 = no limit
|
||||||
|
if s := r.URL.Query().Get("photo_limit"); s != "" {
|
||||||
|
fmt.Sscanf(s, "%d", &photoLimit)
|
||||||
|
}
|
||||||
|
debugSave := false
|
||||||
|
if s := r.URL.Query().Get("debug"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil {
|
||||||
|
debugSave = b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rendering toggle: default true, can be disabled with rendered=false or no-render/no_render=true
|
||||||
|
useRendered := true
|
||||||
|
if s := r.URL.Query().Get("rendered"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil {
|
||||||
|
useRendered = b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if s := r.URL.Query().Get("no-render"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil && b {
|
||||||
|
useRendered = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if s := r.URL.Query().Get("no_render"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil && b {
|
||||||
|
useRendered = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
doGet := func(g *geziyor.Geziyor, u string, cb func(*geziyor.Geziyor, *client.Response)) {
|
||||||
|
if useRendered {
|
||||||
|
g.GetRendered(u, cb)
|
||||||
|
} else {
|
||||||
|
g.Get(u, cb)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Response accumulator
|
||||||
|
var (
|
||||||
|
resp Response
|
||||||
|
mu sync.Mutex
|
||||||
|
)
|
||||||
|
resp.InputLink = link
|
||||||
|
|
||||||
|
// Regexes
|
||||||
|
photoIDRe := regexp.MustCompile(`(?i)^\d+$`)
|
||||||
|
rePhotoIDFromHref := regexp.MustCompile(`/Photo/\d+/(\d+)`)
|
||||||
|
rePhotoIDFromImg := regexp.MustCompile(`/photos/(\d+)_`)
|
||||||
|
|
||||||
|
// Debug helpers
|
||||||
|
sanitizeRe := regexp.MustCompile(`[^a-zA-Z0-9._-]+`)
|
||||||
|
saveDebug := func(stage string, cr *client.Response) {
|
||||||
|
if !debugSave || cr == nil || cr.Request == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_ = os.MkdirAll("debuging", 0o755)
|
||||||
|
u := cr.Request.URL.String()
|
||||||
|
h := sha1.Sum([]byte(u))
|
||||||
|
short := hex.EncodeToString(h[:6])
|
||||||
|
name := fmt.Sprintf("%s_%s_%s.html", stage, short, sanitizeRe.ReplaceAllString(u, "_"))
|
||||||
|
path := filepath.Join("debuging", name)
|
||||||
|
_ = os.WriteFile(path, cr.Body, 0o644)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse a single album
|
||||||
|
parseAlbum := func(g *geziyor.Geziyor, cr *client.Response) {
|
||||||
|
saveDebug("album", cr)
|
||||||
|
doc := cr.HTMLDoc
|
||||||
|
if doc == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
album := Album{URL: cr.Request.URL.String()}
|
||||||
|
if sel := doc.Find("meta[property='znrm:album']"); sel.Length() > 0 {
|
||||||
|
if v, ok := sel.Attr("content"); ok {
|
||||||
|
album.ID = strings.TrimSpace(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
album.Title = strings.TrimSpace(doc.Find(".row-name-album h2 span").First().Text())
|
||||||
|
dt := strings.TrimSpace(doc.Find(".row-name-album .album-info .hide-on-phone").First().Text())
|
||||||
|
if dt != "" {
|
||||||
|
dt = strings.TrimSpace(strings.TrimPrefix(dt, "|"))
|
||||||
|
}
|
||||||
|
album.Date = dt
|
||||||
|
if pc := strings.TrimSpace(doc.Find(".row-name-album [data-id='header-album-photos']").First().Text()); pc != "" {
|
||||||
|
fmt.Sscanf(pc, "%d", &album.PhotosCnt)
|
||||||
|
}
|
||||||
|
// Photos
|
||||||
|
count := 0
|
||||||
|
photoSel := doc.Find("[data-type='photo'][data-id]")
|
||||||
|
if photoSel.Length() == 0 {
|
||||||
|
photoSel = doc.Find(".gallery-inner [data-id]")
|
||||||
|
}
|
||||||
|
photoSel.Each(func(i int, s *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := strings.TrimSpace(s.AttrOr("data-id", ""))
|
||||||
|
if pid == "" || !photoIDRe.MatchString(pid) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p := Photo{ID: pid}
|
||||||
|
if a := s.Find("a.gallery-link"); a.Length() > 0 {
|
||||||
|
p.PageURL = a.AttrOr("href", "")
|
||||||
|
if strings.HasPrefix(p.PageURL, "/") {
|
||||||
|
p.PageURL = cr.JoinURL(p.PageURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
})
|
||||||
|
if count == 0 {
|
||||||
|
doc.Find("a[href*='/Photo/']").Each(func(i int, a *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
href := strings.TrimSpace(a.AttrOr("href", ""))
|
||||||
|
if href == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m := rePhotoIDFromHref.FindStringSubmatch(href)
|
||||||
|
if len(m) < 2 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := m[1]
|
||||||
|
if !photoIDRe.MatchString(pid) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p := Photo{ID: pid, PageURL: href}
|
||||||
|
if strings.HasPrefix(p.PageURL, "/") {
|
||||||
|
p.PageURL = cr.JoinURL(p.PageURL)
|
||||||
|
}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if count == 0 {
|
||||||
|
doc.Find("img[src*='/photos/']").Each(func(i int, img *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
src := strings.TrimSpace(img.AttrOr("src", ""))
|
||||||
|
m := rePhotoIDFromImg.FindStringSubmatch(src)
|
||||||
|
if len(m) < 2 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := m[1]
|
||||||
|
p := Photo{ID: pid}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
})
|
||||||
|
}
|
||||||
|
mu.Lock()
|
||||||
|
resp.Albums = append(resp.Albums, album)
|
||||||
|
mu.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
gz := geziyor.NewGeziyor(&geziyor.Options{
|
||||||
|
StartRequestsFunc: func(g *geziyor.Geziyor) {
|
||||||
|
doGet(g, link, parseAlbum)
|
||||||
|
},
|
||||||
|
ParseFunc: parseAlbum,
|
||||||
|
RetryTimes: 2,
|
||||||
|
Timeout: 30 * time.Second,
|
||||||
|
LogDisabled: true,
|
||||||
|
RobotsTxtDisabled: true,
|
||||||
|
})
|
||||||
|
gz.Start()
|
||||||
|
|
||||||
|
enc := json.NewEncoder(w)
|
||||||
|
enc.SetIndent("", " ")
|
||||||
|
_ = enc.Encode(resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Album struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
Date string `json:"date,omitempty"`
|
||||||
|
PhotosCnt int `json:"photos_count,omitempty"`
|
||||||
|
ViewsCnt int `json:"views_count,omitempty"`
|
||||||
|
Photos []Photo `json:"photos"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response struct {
|
||||||
|
InputLink string `json:"input_link"`
|
||||||
|
Albums []Album `json:"albums"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
http.HandleFunc("/zonerama", zoneramaHandler)
|
||||||
|
http.HandleFunc("/zonerama-album", zoneramaAlbumHandler)
|
||||||
|
http.HandleFunc("/", docsHandler)
|
||||||
|
// Serve saved debug HTML files
|
||||||
|
http.Handle("/debuging/", http.StripPrefix("/debuging/", http.FileServer(http.Dir("debuging"))))
|
||||||
|
addr := ":7053"
|
||||||
|
log.Printf("Starting server on %s...", addr)
|
||||||
|
if err := http.ListenAndServe(addr, nil); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// docsHandler serves a minimal API docs page at "/"
|
||||||
|
func docsHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||||
|
fmt.Fprint(w, `<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>ZoneramaScraper API</title>
|
||||||
|
<style>
|
||||||
|
body { font-family: -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; margin: 2rem; line-height: 1.5; }
|
||||||
|
code, pre { background: #f6f8fa; padding: 2px 6px; border-radius: 4px; }
|
||||||
|
pre { padding: 12px; overflow-x: auto; }
|
||||||
|
h1 { margin-top: 0; }
|
||||||
|
a { color: #0366d6; text-decoration: none; }
|
||||||
|
a:hover { text-decoration: underline; }
|
||||||
|
.endpoint { border-left: 4px solid #28a745; padding-left: 10px; margin: 1.5rem 0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ZoneramaScraper API</h1>
|
||||||
|
<p>This service scrapes album and photo metadata from <a href="https://www.zonerama.com" target="_blank" rel="noreferrer">zonerama.com</a>.</p>
|
||||||
|
<div class="endpoint">
|
||||||
|
<h2>GET /zonerama</h2>
|
||||||
|
<p>Scrape albums and photos from a Zonerama profile or album URL.</p>
|
||||||
|
<h3>Query parameters</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>link</strong> (required): A Zonerama URL. Example: <code>https://eu.zonerama.com/<Account>/<TabId></code> or a profile link.</li>
|
||||||
|
<li><strong>album_limit</strong> (optional): Integer to limit number of albums processed from a profile. Default: <code>5</code>. <code>0</code> means no limit.</li>
|
||||||
|
<li><strong>photo_limit</strong> (optional): Integer to limit number of photos scraped per album. Default: <code>10</code>. <code>0</code> means no limit.</li>
|
||||||
|
<li><strong>debug</strong> (optional): <code>true|false</code>. If <code>true</code>, saves fetched HTML files into <code>debuging/</code> and serves them at <code>/debuging/</code>.</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Example</h3>
|
||||||
|
<p><code>/zonerama?link=https://eu.zonerama.com/SomeAccount/12345&album_limit=5&photo_limit=50</code></p>
|
||||||
|
<h3>Response</h3>
|
||||||
|
<pre>{
|
||||||
|
"input_link": "...",
|
||||||
|
"albums": [
|
||||||
|
{
|
||||||
|
"id": "...",
|
||||||
|
"title": "...",
|
||||||
|
"url": "...",
|
||||||
|
"date": "...",
|
||||||
|
"photos_count": 42,
|
||||||
|
"photos": [
|
||||||
|
{ "id": "...", "page_url": "...", "image_1500": "..." }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}</pre>
|
||||||
|
</div>
|
||||||
|
<div class="endpoint">
|
||||||
|
<h2>GET /zonerama-album</h2>
|
||||||
|
<p>Scrape a single album by URL (link must contain <code>/Album/</code>).</p>
|
||||||
|
<h3>Query parameters</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>link</strong> (required): A Zonerama album URL. Example: <code>https://eu.zonerama.com/<Account>/Album/<AlbumId></code>.</li>
|
||||||
|
<li><strong>photo_limit</strong> (optional): Integer to limit number of photos scraped from the album. Default: <code>10</code>. <code>0</code> means no limit.</li>
|
||||||
|
<li><strong>rendered</strong> (optional): <code>true|false</code>. Default: <code>true</code>. Aliases: <code>no-render=true</code> or <code>no_render=true</code> to disable rendering.</li>
|
||||||
|
<li><strong>debug</strong> (optional): <code>true|false</code>. If <code>true</code>, saves fetched HTML files into <code>debuging/</code> and serves them at <code>/debuging/</code>.</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Example</h3>
|
||||||
|
<p><code>/zonerama-album?link=https://eu.zonerama.com/Fcbizoni/Album/13878599&photo_limit=25</code></p>
|
||||||
|
</div>
|
||||||
|
<p>Server listens on <code>:7053</code>. CORS is enabled allowing all origins (<code>Access-Control-Allow-Origin: *</code>).</p>
|
||||||
|
<p>JS rendering is enabled by default (requires Chrome installed). When <code>debug=true</code>, fetched pages are saved beneath <code>debuging/</code> and can be viewed at <code>/debuging/</code>.</p>
|
||||||
|
</body>
|
||||||
|
</html>`)
|
||||||
|
}
|
||||||
|
|
||||||
|
func zoneramaHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
|
||||||
|
link := r.URL.Query().Get("link")
|
||||||
|
if link == "" {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "missing link param: /zonerama?link=https://eu.zonerama.com/<Account>/<TabId> or Profile link"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
u, err := url.Parse(link)
|
||||||
|
if err != nil || (u.Scheme != "http" && u.Scheme != "https") {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "invalid link URL"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Basic guard to keep scope on zonerama
|
||||||
|
if !strings.Contains(u.Host, "zonerama.com") {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]string{"error": "link must point to zonerama.com"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
albumLimit := 5 // default 5; 0 = no limit
|
||||||
|
if s := r.URL.Query().Get("album_limit"); s != "" {
|
||||||
|
fmt.Sscanf(s, "%d", &albumLimit)
|
||||||
|
}
|
||||||
|
// Optional: limit number of photos per album
|
||||||
|
photoLimit := 10 // default 10; 0 = no limit
|
||||||
|
if s := r.URL.Query().Get("photo_limit"); s != "" {
|
||||||
|
fmt.Sscanf(s, "%d", &photoLimit)
|
||||||
|
}
|
||||||
|
// JS-rendered requests are used by default (no 'rendered' query param)
|
||||||
|
// Optional: enable debug HTML saving
|
||||||
|
debugSave := false
|
||||||
|
if s := r.URL.Query().Get("debug"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil {
|
||||||
|
debugSave = b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rendering toggle: default true; can disable via rendered=false or no-render/no_render=true
|
||||||
|
useRendered := true
|
||||||
|
if s := r.URL.Query().Get("rendered"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil {
|
||||||
|
useRendered = b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if s := r.URL.Query().Get("no-render"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil && b {
|
||||||
|
useRendered = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if s := r.URL.Query().Get("no_render"); s != "" {
|
||||||
|
if b, err := strconv.ParseBool(s); err == nil && b {
|
||||||
|
useRendered = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Helper to choose between rendered and non-rendered fetch
|
||||||
|
doGet := func(g *geziyor.Geziyor, url string, cb func(*geziyor.Geziyor, *client.Response)) {
|
||||||
|
if useRendered {
|
||||||
|
g.GetRendered(url, cb)
|
||||||
|
} else {
|
||||||
|
g.Get(url, cb)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Concurrency for JS-rendered album requests
|
||||||
|
concurrency := 8 // default
|
||||||
|
if s := r.URL.Query().Get("concurrency"); s != "" {
|
||||||
|
fmt.Sscanf(s, "%d", &concurrency)
|
||||||
|
}
|
||||||
|
if concurrency < 1 {
|
||||||
|
concurrency = 1
|
||||||
|
}
|
||||||
|
if albumLimit > 0 && concurrency > albumLimit {
|
||||||
|
concurrency = albumLimit
|
||||||
|
}
|
||||||
|
// Semaphore to cap concurrent album fetches
|
||||||
|
sem := make(chan struct{}, concurrency)
|
||||||
|
|
||||||
|
// Shared state for the crawl
|
||||||
|
var (
|
||||||
|
resp Response
|
||||||
|
mu sync.Mutex
|
||||||
|
wg sync.WaitGroup
|
||||||
|
seen = make(map[string]bool) // dedupe album URLs
|
||||||
|
)
|
||||||
|
resp.InputLink = link
|
||||||
|
|
||||||
|
// Compile regexes once
|
||||||
|
// In a raw string literal (backticks), use a single backslash for \d
|
||||||
|
photoIDRe := regexp.MustCompile(`(?i)^\d+$`)
|
||||||
|
// Fallback patterns to extract photo IDs
|
||||||
|
rePhotoIDFromHref := regexp.MustCompile(`/Photo/\d+/(\d+)`)
|
||||||
|
rePhotoIDFromImg := regexp.MustCompile(`/photos/(\d+)_`)
|
||||||
|
|
||||||
|
// Albums accumulator
|
||||||
|
addAlbum := func(a Album) {
|
||||||
|
mu.Lock()
|
||||||
|
resp.Albums = append(resp.Albums, a)
|
||||||
|
mu.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prelim info gathered from profile tiles (date, counts) keyed by album URL
|
||||||
|
type prelimInfo struct {
|
||||||
|
Date string
|
||||||
|
PhotosCnt int
|
||||||
|
ViewsCnt int
|
||||||
|
}
|
||||||
|
prelim := make(map[string]prelimInfo)
|
||||||
|
|
||||||
|
// Debug helpers
|
||||||
|
sanitizeRe := regexp.MustCompile(`[^a-zA-Z0-9._-]+`)
|
||||||
|
saveDebug := func(stage string, cr *client.Response) {
|
||||||
|
if !debugSave || cr == nil || cr.Request == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_ = os.MkdirAll("debuging", 0o755)
|
||||||
|
u := cr.Request.URL.String()
|
||||||
|
h := sha1.Sum([]byte(u))
|
||||||
|
short := hex.EncodeToString(h[:6])
|
||||||
|
name := fmt.Sprintf("%s_%s_%s.html", stage, short, sanitizeRe.ReplaceAllString(u, "_"))
|
||||||
|
path := filepath.Join("debuging", name)
|
||||||
|
_ = os.WriteFile(path, cr.Body, 0o644)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Crawl an Album page and collect photos
|
||||||
|
parseAlbum := func(g *geziyor.Geziyor, cr *client.Response) {
|
||||||
|
saveDebug("album", cr)
|
||||||
|
doc := cr.HTMLDoc
|
||||||
|
if doc == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
album := Album{URL: cr.Request.URL.String()}
|
||||||
|
|
||||||
|
// ID from meta
|
||||||
|
if sel := doc.Find("meta[property='znrm:album']"); sel.Length() > 0 {
|
||||||
|
if v, ok := sel.Attr("content"); ok {
|
||||||
|
album.ID = strings.TrimSpace(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Title from header
|
||||||
|
album.Title = strings.TrimSpace(doc.Find(".row-name-album h2 span").First().Text())
|
||||||
|
// Date (normalize to drop leading '|' if present)
|
||||||
|
dateText := strings.TrimSpace(doc.Find(".row-name-album .album-info .hide-on-phone").First().Text())
|
||||||
|
if dateText != "" {
|
||||||
|
dateText = strings.TrimSpace(strings.TrimPrefix(dateText, "|"))
|
||||||
|
}
|
||||||
|
album.Date = dateText
|
||||||
|
// Photos count
|
||||||
|
if pc := strings.TrimSpace(doc.Find(".row-name-album [data-id='header-album-photos']").First().Text()); pc != "" {
|
||||||
|
fmt.Sscanf(pc, "%d", &album.PhotosCnt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Photos list: support broader selectors
|
||||||
|
count := 0
|
||||||
|
photoSel := doc.Find("[data-type='photo'][data-id]")
|
||||||
|
if photoSel.Length() == 0 {
|
||||||
|
// fallback: look inside .gallery-inner for any element with data-id
|
||||||
|
photoSel = doc.Find(".gallery-inner [data-id]")
|
||||||
|
}
|
||||||
|
log.Printf("parseAlbum: found %d photo candidates at %s", photoSel.Length(), cr.Request.URL.String())
|
||||||
|
photoSel.Each(func(i int, s *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := strings.TrimSpace(s.AttrOr("data-id", ""))
|
||||||
|
if pid == "" || !photoIDRe.MatchString(pid) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p := Photo{ID: pid}
|
||||||
|
// Optional page URL
|
||||||
|
if a := s.Find("a.gallery-link"); a.Length() > 0 {
|
||||||
|
p.PageURL = a.AttrOr("href", "")
|
||||||
|
if strings.HasPrefix(p.PageURL, "/") {
|
||||||
|
p.PageURL = cr.JoinURL(p.PageURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
})
|
||||||
|
|
||||||
|
// If none matched, try fallback: anchors with /Photo/<album>/<photo>
|
||||||
|
if count == 0 {
|
||||||
|
fallbackCount := 0
|
||||||
|
doc.Find("a[href*='/Photo/']").Each(func(i int, a *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
href := strings.TrimSpace(a.AttrOr("href", ""))
|
||||||
|
if href == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m := rePhotoIDFromHref.FindStringSubmatch(href)
|
||||||
|
if len(m) < 2 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := m[1]
|
||||||
|
if !photoIDRe.MatchString(pid) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p := Photo{ID: pid, PageURL: href}
|
||||||
|
if strings.HasPrefix(p.PageURL, "/") {
|
||||||
|
p.PageURL = cr.JoinURL(p.PageURL)
|
||||||
|
}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
fallbackCount++
|
||||||
|
})
|
||||||
|
if fallbackCount > 0 {
|
||||||
|
log.Printf("parseAlbum: fallback from anchors found %d photos at %s", fallbackCount, cr.Request.URL.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If still none, try images with /photos/<id>_
|
||||||
|
if count == 0 {
|
||||||
|
fallbackCount := 0
|
||||||
|
doc.Find("img[src*='/photos/']").Each(func(i int, img *goquery.Selection) {
|
||||||
|
if photoLimit > 0 && count >= photoLimit {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
src := strings.TrimSpace(img.AttrOr("src", ""))
|
||||||
|
m := rePhotoIDFromImg.FindStringSubmatch(src)
|
||||||
|
if len(m) < 2 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pid := m[1]
|
||||||
|
p := Photo{ID: pid}
|
||||||
|
p.Image1500 = fmt.Sprintf("https://%s/photos/%s_1500x1000.jpg", cr.Request.URL.Host, pid)
|
||||||
|
album.Photos = append(album.Photos, p)
|
||||||
|
count++
|
||||||
|
fallbackCount++
|
||||||
|
})
|
||||||
|
if fallbackCount > 0 {
|
||||||
|
log.Printf("parseAlbum: fallback from images found %d photos at %s", fallbackCount, cr.Request.URL.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge prelim info (from profile tiles) if available
|
||||||
|
mu.Lock()
|
||||||
|
if pi, ok := prelim[album.URL]; ok {
|
||||||
|
if strings.TrimSpace(album.Date) == "" && strings.TrimSpace(pi.Date) != "" {
|
||||||
|
album.Date = strings.TrimSpace(pi.Date)
|
||||||
|
}
|
||||||
|
if album.PhotosCnt == 0 && pi.PhotosCnt > 0 {
|
||||||
|
album.PhotosCnt = pi.PhotosCnt
|
||||||
|
}
|
||||||
|
if album.ViewsCnt == 0 && pi.ViewsCnt > 0 {
|
||||||
|
album.ViewsCnt = pi.ViewsCnt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mu.Unlock()
|
||||||
|
|
||||||
|
addAlbum(album)
|
||||||
|
}
|
||||||
|
parseProfile := func(g *geziyor.Geziyor, cr *client.Response) {
|
||||||
|
saveDebug("profile", cr)
|
||||||
|
doc := cr.HTMLDoc
|
||||||
|
if doc == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Albums tiles: try multiple selectors
|
||||||
|
count := 0
|
||||||
|
albumTiles := doc.Find("li.list-alb")
|
||||||
|
if albumTiles.Length() == 0 {
|
||||||
|
albumTiles = doc.Find("[data-type='album'], li[class*='list-alb']")
|
||||||
|
}
|
||||||
|
log.Printf("parseProfile: found %d album candidates at %s", albumTiles.Length(), cr.Request.URL.String())
|
||||||
|
// First collect entries with prelim info
|
||||||
|
type entry struct {
|
||||||
|
URL string
|
||||||
|
Info prelimInfo
|
||||||
|
}
|
||||||
|
var entries []entry
|
||||||
|
albumTiles.Each(func(i int, s *goquery.Selection) {
|
||||||
|
albumURL := strings.TrimSpace(s.AttrOr("data-url", ""))
|
||||||
|
if albumURL == "" {
|
||||||
|
// fallback to anchor
|
||||||
|
albumURL = strings.TrimSpace(s.Find("a.thumbnail").AttrOr("href", ""))
|
||||||
|
if albumURL == "" {
|
||||||
|
// broader fallback: first anchor in tile
|
||||||
|
albumURL = strings.TrimSpace(s.Find("a").AttrOr("href", ""))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if albumURL == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(albumURL, "/") {
|
||||||
|
albumURL = cr.JoinURL(albumURL)
|
||||||
|
}
|
||||||
|
// Extract date, photos count and views count from the tile's <p> block
|
||||||
|
dateText := ""
|
||||||
|
photosCount := 0
|
||||||
|
viewsCount := 0
|
||||||
|
if p := s.Find("p").First(); p.Length() > 0 {
|
||||||
|
full := strings.TrimSpace(p.Text())
|
||||||
|
if full != "" {
|
||||||
|
parts := strings.Split(full, "|")
|
||||||
|
if len(parts) > 0 {
|
||||||
|
dateText = strings.TrimSpace(parts[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spans := p.Find("span")
|
||||||
|
if spans.Length() > 0 {
|
||||||
|
fmt.Sscanf(strings.TrimSpace(spans.Eq(0).Text()), "%d", &photosCount)
|
||||||
|
}
|
||||||
|
if spans.Length() > 1 {
|
||||||
|
fmt.Sscanf(strings.TrimSpace(spans.Eq(1).Text()), "%d", &viewsCount)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
entries = append(entries, entry{URL: albumURL, Info: prelimInfo{Date: dateText, PhotosCnt: photosCount, ViewsCnt: viewsCount}})
|
||||||
|
})
|
||||||
|
// Sort entries by date descending (newest first)
|
||||||
|
parseDate := func(s string) (time.Time, bool) {
|
||||||
|
s = strings.TrimSpace(s)
|
||||||
|
if s == "" {
|
||||||
|
return time.Time{}, false
|
||||||
|
}
|
||||||
|
layouts := []string{"2. 1. 2006", "2. 1.2006", "2.1.2006", "02.01.2006"}
|
||||||
|
for _, layout := range layouts {
|
||||||
|
if t, err := time.Parse(layout, s); err == nil {
|
||||||
|
return t, true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return time.Time{}, false
|
||||||
|
}
|
||||||
|
sort.SliceStable(entries, func(i, j int) bool {
|
||||||
|
ti, oi := parseDate(entries[i].Info.Date)
|
||||||
|
tj, oj := parseDate(entries[j].Info.Date)
|
||||||
|
if oi && oj {
|
||||||
|
return ti.After(tj)
|
||||||
|
}
|
||||||
|
if oi {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if oj {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return entries[i].URL < entries[j].URL
|
||||||
|
})
|
||||||
|
// Enqueue requests in sorted order, honoring albumLimit
|
||||||
|
for _, e := range entries {
|
||||||
|
if albumLimit > 0 && count >= albumLimit {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
// Save prelim info for this album URL
|
||||||
|
mu.Lock()
|
||||||
|
prelim[e.URL] = e.Info
|
||||||
|
if seen[e.URL] {
|
||||||
|
mu.Unlock()
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[e.URL] = true
|
||||||
|
mu.Unlock()
|
||||||
|
count++
|
||||||
|
// Acquire a slot before starting the JS-rendered request
|
||||||
|
sem <- struct{}{}
|
||||||
|
wg.Add(1)
|
||||||
|
g.GetRendered(e.URL, func(g2 *geziyor.Geziyor, r2 *client.Response) {
|
||||||
|
defer func() { <-sem; wg.Done() }()
|
||||||
|
parseAlbum(g2, r2)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Router: decide whether current page is a profile or an album and call appropriate parser
|
||||||
|
parseRouter := func(g *geziyor.Geziyor, cr *client.Response) {
|
||||||
|
saveDebug("router", cr)
|
||||||
|
doc := cr.HTMLDoc
|
||||||
|
if doc == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Heuristics: prefer PROFILE when profile markers exist; ALBUM only with strong markers
|
||||||
|
if doc.Find("li.list-alb, #profile-albums").Length() > 0 {
|
||||||
|
log.Printf("router: classified as PROFILE -> %s", cr.Request.URL.String())
|
||||||
|
parseProfile(g, cr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if doc.Find("meta[property='znrm:album']").Length() > 0 || doc.Find(".row-name-album").Length() > 0 {
|
||||||
|
log.Printf("router: classified as ALBUM -> %s", cr.Request.URL.String())
|
||||||
|
parseAlbum(g, cr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Default to profile for safety
|
||||||
|
log.Printf("router: defaulting to PROFILE -> %s", cr.Request.URL.String())
|
||||||
|
parseProfile(g, cr)
|
||||||
|
}
|
||||||
|
gz := geziyor.NewGeziyor(&geziyor.Options{
|
||||||
|
StartRequestsFunc: func(g *geziyor.Geziyor) {
|
||||||
|
doGet(g, link, parseRouter)
|
||||||
|
},
|
||||||
|
ParseFunc: parseRouter,
|
||||||
|
RetryTimes: 2,
|
||||||
|
Timeout: 30 * time.Second,
|
||||||
|
LogDisabled: true,
|
||||||
|
RobotsTxtDisabled: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
gz.Start()
|
||||||
|
// Wait for all album requests to complete
|
||||||
|
wg.Wait()
|
||||||
|
|
||||||
|
// Sort albums by date (descending) using the date format from profile tiles like "20. 9. 2025"
|
||||||
|
parseCzDate := func(s string) (time.Time, bool) {
|
||||||
|
s = strings.TrimSpace(s)
|
||||||
|
if s == "" {
|
||||||
|
return time.Time{}, false
|
||||||
|
}
|
||||||
|
layouts := []string{
|
||||||
|
"2. 1. 2006",
|
||||||
|
"2. 1.2006",
|
||||||
|
"2.1.2006",
|
||||||
|
"02.01.2006",
|
||||||
|
}
|
||||||
|
for _, layout := range layouts {
|
||||||
|
if t, err := time.Parse(layout, s); err == nil {
|
||||||
|
return t, true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return time.Time{}, false
|
||||||
|
}
|
||||||
|
sort.SliceStable(resp.Albums, func(i, j int) bool {
|
||||||
|
ti, oi := parseCzDate(resp.Albums[i].Date)
|
||||||
|
tj, oj := parseCzDate(resp.Albums[j].Date)
|
||||||
|
if oi && oj {
|
||||||
|
return ti.After(tj)
|
||||||
|
}
|
||||||
|
if oi {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if oj {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// Fallback: by title
|
||||||
|
return resp.Albums[i].Title < resp.Albums[j].Title
|
||||||
|
})
|
||||||
|
|
||||||
|
enc := json.NewEncoder(w)
|
||||||
|
enc.SetIndent("", " ")
|
||||||
|
_ = enc.Encode(resp)
|
||||||
|
}
|
||||||
+769
@@ -0,0 +1,769 @@
|
|||||||
|
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html class="chrome" xmlns='http://www.w3.org/1999/xhtml' xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://opengraphprotocol.org/schema/">
|
||||||
|
<head>
|
||||||
|
<meta property="znrm:turbolinks" content="true" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
|
||||||
|
|
||||||
|
<title> | Zonerama.com</title>
|
||||||
|
<meta property="znrm:turbolinks_id" content="3d3040f7-2892-4905-ac00-5033a0b8d24f" />
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,700,400italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
|
||||||
|
<meta http-equiv="content-language" content="cs-CZ" />
|
||||||
|
<meta name="description" content="Online fotogalerie bez limitů. Žádná komprese, žádná omezení." />
|
||||||
|
<meta name="keywords" content='' />
|
||||||
|
<meta name="author" content="ZONER" />
|
||||||
|
<meta name="copyright" content="ZONER" />
|
||||||
|
|
||||||
|
<link rel="icon" type="image/png" href="https://eu.zonerama.com/Content/img/logo/favicon-96x96.png" sizes="96x96" />
|
||||||
|
<link rel="icon" type="image/svg+xml" href="https://eu.zonerama.com/Content/img/logo/favicon.svg" />
|
||||||
|
<link rel="shortcut icon" href="https://eu.zonerama.com/Content/img/logo/favicon.ico" />
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="https://eu.zonerama.com/Content/img/logo/apple-touch-icon.png" />
|
||||||
|
<meta name="apple-mobile-web-app-title" content="Zonerama" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
|
||||||
|
|
||||||
|
<meta property="znrm:photos.ext" content="pcx,gif,tif,tiff,bmp,dib,rle,bms,wpg,ico,tga,jpg,jpeg,jpe,thm,jps,jfif,jfi,jif,insp,png,pns,bmi,psd,psb,psp,pspimage,jp2,jpc,j2k,hdp,wdp,pnm,ppm,pgm,pbm,pam,wbmp,wbm,mpo,jxr,hdr,zps,heic,heif,hif,avif,avifs,jxl,webp,raw,orf,ori,nef,mrw,cr2,cr3,pef,arw,sr2,kdc,erf,mef,3fr,srf,rw2,nrw,fff,rwl,srw,gpr,raf,crw,x3f,cs1,dng,xmp,data-zps" />
|
||||||
|
<meta property="znrm:videos.ext" content="avi,divx,mpg,mpeg,m1v,m2v,mp2v,mpv2,mp2,wmv,asf,dvr-ms,mp4,m4v,mp4v,mpv4,hdmov,mov,mod,xesc,swf,flv,dv,ts,m2ts,mts,m2t,rm,rmvb,vob,asf,mkv,ogv,ogm,webm,3gp,3g2,3gpp" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="robots" content="index,follow,noimageindex, noimageclick" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Kategorie U15 FK Krnov 2:5 Nový Jičín" />
|
||||||
|
<meta property="og:url" content="https://eu.zonerama.com/Link/Photo/565775525/13903610" />
|
||||||
|
<meta property="og:description" content="od FK Kofola Krnov | 20 z 101 fotek" />
|
||||||
|
<meta property="twitter:card" content="summary_large_image" />
|
||||||
|
<meta property="twitter:title" content="Kategorie U15 FK Krnov 2:5 Nový Jičín" />
|
||||||
|
<meta property="twitter:description" content="od FK Kofola Krnov | 20 z 101 fotek" />
|
||||||
|
<meta property="znrm:public" content="content" />
|
||||||
|
<meta property="znrm:pwd" />
|
||||||
|
<meta property="znrm:secret" />
|
||||||
|
<meta property="znrm:downloadable" content="content" />
|
||||||
|
<meta property="znrm:embed_pattern" content="https://eu.zonerama.com/Embed/Album/%7Balbumid%7D?color=%7Bcolor%7D&autoplay=%7Bautoplay%7D&vertical=%7Bvertical%7D" />
|
||||||
|
<meta property="og:image" content="https://eu.zonerama.com/photos/565775525_6000x4000.jpg" />
|
||||||
|
<meta property="tumblr:image" content="https://eu.zonerama.com/photos/565775525_6000x4000.jpg" />
|
||||||
|
<meta property="twitter:image" content="https://eu.zonerama.com/photos/565775525_1000x1000.jpg" />
|
||||||
|
|
||||||
|
<meta property="ga:logged" content="100" />
|
||||||
|
<meta property="znrm:zaid" content="3815371" />
|
||||||
|
|
||||||
|
<meta property="znrm:account" content="884961" />
|
||||||
|
<meta property="znrm:album" content="13903610" />
|
||||||
|
<meta property="znrm:album:pid" content="13903610" />
|
||||||
|
<meta property="znrm:photo" content="565775525" />
|
||||||
|
<meta property="znrm:timezoneoffset" content="120" />
|
||||||
|
<meta property="znrm:chromecastId" content="1B1FFFF7" />
|
||||||
|
<meta property="znrm:geoip_country" content="CZ" />
|
||||||
|
<meta property="znrm:geoip_continent" content="EU" />
|
||||||
|
<meta property="znrm:lang" content="cs" />
|
||||||
|
<meta property="znrm:embedId" content="" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:site_name" content="Zonerama" />
|
||||||
|
<meta property="twitter:site" content="Zonerama" />
|
||||||
|
<meta property="fb:app_id" content="730783385528761" />
|
||||||
|
<!-- <meta property="fb:admins " content="100000567537467" /> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Content/bootstrap/fonts/znrm/style.css?4502de5b-533e-468c-b0cf-d1a66930aadc" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Content/zps/18/font/style.css?4502de5b-533e-468c-b0cf-d1a66930aadc" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Content/bootstrap/css/bootstrap.css?4502de5b-533e-468c-b0cf-d1a66930aadc" data-turbolinks-track="true" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Content/zpd/style.css?4502de5b-533e-468c-b0cf-d1a66930aadc" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Content/jquery-ui.css?4502de5b-533e-468c-b0cf-d1a66930aadc">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Scripts/quill/quill.bubble.css?4502de5b-533e-468c-b0cf-d1a66930aadc" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/Scripts/noUiSlider-14.6.3/nouislider.css?4502de5b-533e-468c-b0cf-d1a66930aadc" />
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/Scripts/Swiper-10.1.0/swiper-bundle.min.css" />
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
html.turbolinks-progress-bar::before {
|
||||||
|
background-color: #0069b4 !important;
|
||||||
|
height: 3px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.modal-dialog-nahrat-fotky .modal-content {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog-nahrat-fotky .modal-body-right.anim {
|
||||||
|
transform: translateX(300px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="module" src="/CookieConsent"></script>
|
||||||
|
|
||||||
|
<script src="https://eu.zonerama.com/Scripts/all.js?4502de5b-533e-468c-b0cf-d1a66930aadc" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="/Content/bootstrap/js/html5shiv.js?4502de5b-533e-468c-b0cf-d1a66930aadc" type="text/javascript"></script>
|
||||||
|
<script src="/Content/bootstrap/js/respond.min.js?4502de5b-533e-468c-b0cf-d1a66930aadc" type="text/javascript"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@3.1.0/dist/cookieconsent.css">
|
||||||
|
|
||||||
|
<!-- Google Tag Manager -->
|
||||||
|
<script type="text/plain" data-category="analytics" data-service="Google Analytics">
|
||||||
|
(function (w, d, s, l, i) {
|
||||||
|
w[l] = w[l] || []; w[l].push({
|
||||||
|
'gtm.start':
|
||||||
|
new Date().getTime(), event: 'gtm.js'
|
||||||
|
}); var f = d.getElementsByTagName(s)[0],
|
||||||
|
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
|
||||||
|
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
|
||||||
|
})(window, document, 'script', 'dataLayer', 'GTM-KHZXKZS');
|
||||||
|
</script>
|
||||||
|
<!-- End Google Tag Manager -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="culture-cs " data-authorized="true"
|
||||||
|
|
||||||
|
|
||||||
|
style="overflow-y: scroll;"
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="side-collapse-container">
|
||||||
|
<div class="clearfix">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="page-photo" class="full-gallery ">
|
||||||
|
<div id="photo-data" style="display: none;"
|
||||||
|
data-items-id="565775564,565775560,565775563,565775568,565775558,565775553,565775552,565775554,565775540,565775549,565775545,565775535,565775539,565775529,565775557,565775527,565775531,565775530,565775517,565775525,565775516,565775518,565775514,565775513,565775510,565775503,565775511,565775494,565775500,565775509,565775507,565775502,565775492,565775489,565775487,565775488,565775484,565775483,565775482,565775475,565775480,565775468,565775471,565775472,565775461,565775459,565775473,565775466,565775463,565775435,565775430,565775441,565775455,565775456,565775442,565775408,565775404,565775405,565775427,565775391,565775415,565775377,565775369,565775407,565775392,565775374,565775358,565775320,565775349,565775337,565775334,565775321,565775279,565775276,565775281,565775300,565775275,565775263,565775271,565775269,565775267,565775259,565775253,565775246,565775244,565775241,565775245,565775243,565775242,565775227,565775228,565775224,565775235,565775234,565775226,565775204,565775206,565775202,565775207,565775212,565775216"
|
||||||
|
data-title="Kategorie U15 FK Krnov 2:5 Nový Jičín {0} | Zonerama.com"
|
||||||
|
data-session="r2hm10sxx0swrs55wckxudyh"
|
||||||
|
data-slide-url="/Part/PhotoOnSlide"
|
||||||
|
data-infopanel="True"
|
||||||
|
data-back="False"
|
||||||
|
data-slide-ajax-url="/Part/PhotoOnSlide?ID=0">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="photo-key-help" class="alert alert-znrm alert-dismissable" style="display: none;">
|
||||||
|
<button type="button" class="close">×</button>
|
||||||
|
<p class="alert-keys-p">
|
||||||
|
<span class="blok">
|
||||||
|
<i class="za-icon icon-arrow-square-left"></i>
|
||||||
|
<i class="za-icon icon-arrow-square-right"></i>
|
||||||
|
Procházení
|
||||||
|
</span>
|
||||||
|
<span class="dash"></span>
|
||||||
|
<span class="blok">
|
||||||
|
<i class="za-icon icon-f11"></i>
|
||||||
|
Celá obrazovka
|
||||||
|
</span>
|
||||||
|
<span class="dash"></span>
|
||||||
|
<span class="blok">
|
||||||
|
<i class="za-icon icon-arrow-square-up"></i>
|
||||||
|
<i class="za-icon icon-arrow-square-down"></i>
|
||||||
|
Informace
|
||||||
|
</span>
|
||||||
|
<span class="dash"></span>
|
||||||
|
<span class="blok">
|
||||||
|
<i class="za-icon icon-esc"></i>
|
||||||
|
Zavřít
|
||||||
|
</span>
|
||||||
|
<span class="dash"></span>
|
||||||
|
<span class="blok">
|
||||||
|
<i class="za-icon icon-space"></i>
|
||||||
|
Přehrát / pozastavit
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="full-gallery-padd">
|
||||||
|
|
||||||
|
<div id="photo-swiper-container" class="swiper swiper-container">
|
||||||
|
<div class="swiper-wrapper">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a id="photo-prev2" href="javascript:void(0);" class="arr-l"><i class="za-icon icon-arrow-new"></i></a>
|
||||||
|
<a id="photo-next2" href="javascript:void(0);" class="arr-r"><i class="za-icon icon-arrow-new-right"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="full-gallery-close">
|
||||||
|
<a id="photo-zoom-out" href="javascript:void(0);" style="margin-right: 20px; display: none;"><i class="za-icon icon-zoom-out"></i></a>
|
||||||
|
<a id="photo-zoom-in" href="javascript:void(0);" style="margin-right: 40px;"><i class="za-icon icon-zoom-in"></i></a>
|
||||||
|
<a id="photo-fullscreen" href="javascript:void(0);"><i class="za-icon icon-arrow"></i></a>
|
||||||
|
<a id="photo-close" href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610"><i class="za-icon icon-close"></i></a>
|
||||||
|
</div>
|
||||||
|
<div id="photo-bottom-panel" class="photo-bottom-panel">
|
||||||
|
<div class="description">
|
||||||
|
<div class="pull-left pull-back">
|
||||||
|
<p>
|
||||||
|
<a id="photo-bottom-back" href="javascript:void(0);">
|
||||||
|
<i class="za-icon icon-arrow-new"></i>
|
||||||
|
<img src="/Content/img/znrm.png" alt="" width="30" height="30" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="pull-left pull-name">
|
||||||
|
<p>
|
||||||
|
<a id="photo-title" href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610" class="name">Kategorie U15 FK Krnov 2:5 Nový Jičín</a>
|
||||||
|
</p>
|
||||||
|
<p class="by">
|
||||||
|
<span id="photo-account">
|
||||||
|
od <a id="photo-account-name" target="_top" href="javascript:void(0);"></a>
|
||||||
|
|
|
||||||
|
</span>
|
||||||
|
<span id="photo-number" data-toggle="tooltip" data-original-title="Počet fotek">1</span> z <span id="photo-count"></span> <i class="za-icon icon-images"></i>
|
||||||
|
<span data-only-for-normal-album>
|
||||||
|
| <span id="photo-views" data-toggle="tooltip" data-original-title="Počet zhlédnutí">1</span> <i class="za-icon icon-eye"></i>
|
||||||
|
<span data-only-for-topOfGallery data-toggle="tooltip" data-original-title="Tato fotka získala ohodnocení Výběr redakce">| <i class="za-icon icon-medal"></i></span>
|
||||||
|
<span id="photo-visit-anomaly" data-text="Vaši fotku zhlédlo {0} návštěvníků">| <i class="za-icon icon-stats-up"></i></span>
|
||||||
|
<span data-only-for-owner data-show="#photo-likers" data-show-event="hover" data-show-if="$('#photo-likes').text() != '0'">| <span id="photo-likes">0</span> <i class="za-icon icon-star"></i></span>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<div id="photo-likers"
|
||||||
|
data-show-anchor="top left" data-show-anchor-offset-left="5" data-show-anchor-offset-top="-20"
|
||||||
|
class="popover-over popover-over2" style="position: absolute; width: 300px; height: 60px; display: none;"
|
||||||
|
data-object="contentLoader" data-loader-url="" data-loader-container="#photo-likers-container">
|
||||||
|
|
||||||
|
<div class="popover top popover-arr-l" style="display: block;">
|
||||||
|
<div id="photo-likers-container" class="popover-content popover-content-img">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control" style="display: none;">
|
||||||
|
<a id="photo-prev" href="javascript:void(0);"><i class="za-icon icon-arrow-left7"></i></a>
|
||||||
|
<a id="photo-play-pause" href="javascript:void(0);" class="play"><i class="za-icon icon-play3"></i></a>
|
||||||
|
<a id="photo-next" href="javascript:void(0);"><i class="za-icon icon-arrow-right8"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bar-abs">
|
||||||
|
<div class="bar clearfix">
|
||||||
|
<table class="table-links" data-not-for-text>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td data-id="photo-editor" class="td-btn-follow hide-on-phone">
|
||||||
|
<a target="_blank" class="btn btn-follow" href="">
|
||||||
|
<img src="/Content/img/logo/ai_editor_white.svg" height="14" />
|
||||||
|
Zoner AI Editor
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td id="photo-download" class="td-btn-follow hide-on-phone" data-toggle="modal" data-target="#dialog-download">
|
||||||
|
<a href="javascript:void(0);"
|
||||||
|
data-text-default=""
|
||||||
|
data-text-photo-not="Uživatel zakázal stažení této fotky."
|
||||||
|
data-text-video-not="Uživatel zakázal stažení tohoto videa."
|
||||||
|
data-text-photo-not-owner="Stažení fotky je ostatním uživatelům zakázáno."
|
||||||
|
data-text-video-not-owner="Stažení videa je ostatním uživatelům zakázáno."
|
||||||
|
data-toggle="tooltip" data-original-title="" class="btn btn-follow"><i class="za-icon icon-download"></i> <span>Stáhnout</span></a>
|
||||||
|
</td>
|
||||||
|
<td data-not-for-owner data-only-for-normal-album>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="photo-like" class="popover-over popover-over2" data-object="like" data-like-objectId="-1" data-like-objectType="2"
|
||||||
|
data-default-text="Oblíbit"
|
||||||
|
data-default-icon="icon-star"
|
||||||
|
data-liked-text="Oblíbeno"
|
||||||
|
data-liked-icon="icon-star"
|
||||||
|
>
|
||||||
|
<a data-id="like-btn" data-ajax-loading-btn="false" href="javascript:void(0);" class="btn btn-follow btn-follow-numb " >
|
||||||
|
<i data-id="like-icon" class="za-icon icon-star"></i>
|
||||||
|
<span data-id="like-text" class="btn-follow-text">Oblíbit</span><span class="follow-numb" data-id="like-counter">0</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div data-id="like-tooltip" class="popover top" data-ajax-url="/Part/Likers?id=-1&type=2">
|
||||||
|
<div class="popover-content popover-content-img">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td data-only-for-normal-album class="td-ico" id="photo-btn-share">
|
||||||
|
<div class="dropup">
|
||||||
|
<a href="javascript:void(0);" class="za-icon-link" data-toggle="dropdown">
|
||||||
|
<i class="za-icon icon-share2" data-toggle="tooltip" title="Možnosti sdílení"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropup-menu" style="left: auto; right: 8px; z-index: 10000;">
|
||||||
|
<li><a href="javascript:void(0);" data-id="native-share" data-btn="native-share"><i class="za-icon icon-share2"></i> Sdílet</a></li>
|
||||||
|
<li class="divider" data-id="native-share"></li>
|
||||||
|
<li data-only-for-album-owner><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-shared-album" data-ajax-url-pattern="/View/Dialog/SharedAlbum?PhotoID=01234567890"><i class="za-icon icon-group"></i> Sdílené album</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_Photo/01234567890?Service=znrm"><i class="za-icon icon-zonerama"></i> Zonerama</a></li>
|
||||||
|
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_Photo/01234567890?Service=fb-share"><i class="za-icon icon-face"></i> Facebook</a></li>
|
||||||
|
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_Photo/01234567890?Service=twitter"><i class="zps-icon zps-icon-twe"></i> Twitter</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_Photo/01234567890?Service=email"><i class="zps-icon zps-icon-envelop"></i> E-mail</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_Photo/01234567890?Service=link"><i class="zps-icon zps-icon-link"></i> Odkaz</a></li>
|
||||||
|
<li class="divider" data-only-for-album-owner></li>
|
||||||
|
<li data-only-for-album-owner><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url-pattern="/View/Dialog/Share_List?PhotoID=01234567890">Správa odkazů</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="td-ico">
|
||||||
|
<a id="photo-icon-info" data-toggle="tooltip" data-original-title="Informace o fotce" data-text-disabled="Uživatel zakázal zobrazení informací" data-text-disabled-owner="Zobrazení informací je ostatním uživatelům zakázáno" href="javascript:void(0);" class="za-icon-link"><i class="za-icon icon-info"></i></a>
|
||||||
|
</td>
|
||||||
|
<td id="chromecast-photo" data-object="chromecast" class="td-ico" style="display: none;">
|
||||||
|
<a href="javascript:void(0);" data-toggle="tooltip" data-original-title="Chromecast" class="za-icon-link"><i class="za-icon icon-chromecast"></i></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="td-ico">
|
||||||
|
<div class="dropup">
|
||||||
|
<a data-toggle="dropdown" class="za-icon-link" href="#"><i class="za-icon icon-menu" data-toggle="tooltip" data-original-title="Další možnosti"></i></a>
|
||||||
|
<ul class="dropdown-menu dropup-menu" style="left: auto; right: 8px; z-index: 10000;">
|
||||||
|
<li><a id="photo-menu-play-pause" href="javascript:void(0);" data-text-play="Spustit promítání" data-text-pause="Zastavit přehrávání">Spustit promítání</a></li>
|
||||||
|
<li><a id="photo-menu-player-speed" href="#" data-toggle="modal" data-target="#dialog-player-settings">Nastavení promítání</a></li>
|
||||||
|
<li class="li-chck"><a id="photo-menu-shortcuts" href="javascript:void(0);"><i class="za-icon icon-checkmark"></i>Zobrazit klávesové zkratky</a></li>
|
||||||
|
<li class="li-chck" data-perms="UpdatePhotoMetadata"><a id="photo-menu-edit" href="javascript:void(0);"><i class="za-icon icon-checkmark"></i>Zobrazit panel pro popis</a></li>
|
||||||
|
<li data-id="photo-editor" class="show-on-phone">
|
||||||
|
<a target="_blank" href="">
|
||||||
|
Zoner AI Editor
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li id="photo-menu-download" class="show-on-phone" data-toggle="modal" data-target="#dialog-download">
|
||||||
|
<a href="javascript:void(0)"
|
||||||
|
data-text-default=""
|
||||||
|
data-text-photo-not="Uživatel zakázal stažení této fotky."
|
||||||
|
data-text-video-not="Uživatel zakázal stažení tohoto videa."
|
||||||
|
data-text-photo-not-owner="Stažení fotky je ostatním uživatelům zakázáno."
|
||||||
|
data-text-video-not-owner="Stažení videa je ostatním uživatelům zakázáno."
|
||||||
|
data-toggle="tooltip" data-original-title=""
|
||||||
|
>Stáhnout</a>
|
||||||
|
</li>
|
||||||
|
<li class="divider" data-only-for-owner></li>
|
||||||
|
<li data-perms="UpdatePhotoHighlight">
|
||||||
|
<!-- Přidat mezi úvodní fotky -->
|
||||||
|
<a href="javascript:void(0)" data-id="highlight" data-enable="true">Přidat mezi úvodní fotky</a>
|
||||||
|
<a href="javascript:void(0)" data-id="highlight" data-enable="false">Odebrat z úvodních fotek</a>
|
||||||
|
</li>
|
||||||
|
<li data-perms="UpdateAlbumCover"><a href="javascript:void(0)" id="photo-menu-cover">Nastavit jako obálku alba</a></li>
|
||||||
|
<li data-only-for-album-owner><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-album-controls">Zobrazení ovládání</a></li>
|
||||||
|
<li data-perms="MovePhoto"><a href="javascript:void(0)" id="photo-menu-move" data-toggle="modal" data-target="#dialog-move-photo">Přesunout</a></li>
|
||||||
|
<li data-perms="DeletePhoto"><a href="javascript:void(0)" id="photo-menu-delete" data-modal-dialog="#dialog-confirm" data-modal-title="Smazat" data-modal-text="Opravdu chcete tuto fotku smazat?" data-modal-confirmText="Smazat">Smazat</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-player-settings" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog2">
|
||||||
|
<form>
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h3 class="modal-title">Nastavení automatického promítání</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
|
<table cellpadding="5" style="width: 100%; margin-top: 20px;">
|
||||||
|
<tr>
|
||||||
|
<td><label>Rychlost promítání</label></td>
|
||||||
|
<td align="left" style="width: 60%;"><div id="dialog-player-speed-slider" class="noui-slider"></div></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Nekonečné promítání</td>
|
||||||
|
<td align="left">
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="switchers pull-left">
|
||||||
|
<input id="photo-menu-viewer-infinite" type="checkbox" class="js-switch" data-object="switch" data-switch-content="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="submit" class="btn btn-success">Uložit</button>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer id="footer" class="">
|
||||||
|
<div class="container">
|
||||||
|
<nav role="navigation" class="navbar navbar-default nav-lang">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
|
||||||
|
<li><a href="javascript:void(0)" data-cc="show-preferencesModal">Cookies</a></li>
|
||||||
|
|
||||||
|
<li><a id="footer-firststeps" href="" data-toggle="modal" data-target="#dialog-firststeps" data-ajax-url="/View/Dialog/FirstSteps">První kroky</a></li>
|
||||||
|
<li><a id="footer-changelog" href="" data-toggle="modal" data-target="#dialog-news" data-ajax-url="/View/Dialog/News">Co je nového</a></li>
|
||||||
|
<li ><a href="/TermsConditions">Podmínky používání</a></li>
|
||||||
|
<li><a href="/FAQ">FAQs</a></li>
|
||||||
|
<li><a href="" id="footer-helpdesk" data-toggle="modal" data-target="#dialog-helpdesk" data-ajax-url="/View/Dialog/Helpdesk?accountId=884961&albumId=13903610">Technická podpora</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<p class="text-center">© 2025 <a href="https://www.zoner.cz/?fidl=2019-06-znrm-cz&utm_source=zonerama&utm_medium=referral&utm_campaign=zonerama-footer" target="_blank">ZONER, Inc.</a>, Powered by <a href="http://www.ZonerCloud.com" target="_blank">ZonerCloud.com</a></p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-error" style="z-index: 9999999999;" tabindex="-1" role="dialog" aria-labelledby="dialog-error-label" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title" id="dialog-error-label">Error</h4>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<iframe data-object="IFrameAutoResize" data-IFrameAutoResize-resize-width="false" style="width: 100%; height: 2000px;" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-contact" tabindex="-1" role="dialog" aria-labelledby="dialog-contact-label" aria-hidden="true" data-account-id="884961">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title" id="dialog-contact-label">Kontaktovat uživatele</h4>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="e">Kontaktní e-mail</label>
|
||||||
|
<input type="email" class="form-control" id="dialog-contact-email" value="Fcbizoni@gmail.com" placeholder="Váš email" data-object="validator" data-vld-message="#dialog-contact-vld-message-email" data-vld-fn="Zonerama.isValidEmail($('#dialog-contact-email').val())" data-vld-fn-message="E-mail není platný.">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-contact-vld-message-email-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="dialog-contact-vld-message-email" data-vld-container="#dialog-contact-vld-message-email-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="t">Obsah zprávy</label>
|
||||||
|
<textarea class="form-control" rows="3" id="dialog-contact-text" placeholder="Vložte zprávu ..." data-object="validator" data-vld-message="#dialog-contact-vld-message-text" data-vld-url="/Validate/ContactEmailText"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-contact-vld-message-text-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="dialog-contact-vld-message-text" data-vld-container="#dialog-contact-vld-message-text-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-contact-success" class="form-group" style="display: none;">
|
||||||
|
<div class="alert alert-success">Zpráva byla úspěšně odeslána.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
<button type="button" class="btn btn-success" id="dialog-contact-submit">Odeslat</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-share" tabindex="-1" role="dialog" aria-labelledby="dialog-share-label" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-share-2019" tabindex="-1" role="dialog" aria-labelledby="dialog-share-label" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-upload-pwd" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-upload-simple" data-backdrop="static" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-shared-album" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-tab-unlock" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-helpdesk" tabindex="-1" role="dialog" aria-labelledby="dialog-helpdesk-label" aria-hidden="true">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="modal-dialog" data-account-id="" data-album-id="">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title" id="dialog-helpdesk-label">Technická podpora</h4>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="helpdesk-overlay-email">Kontaktní e-mail</label>
|
||||||
|
<input id="helpdesk-overlay-email" tabindex="1" type="email" name="inputtext" class="form-control" value="Fcbizoni@gmail.com" placeholder="Váš email" data-watermark-class="form-faded" data-object="validator" data-vld-message="#helpdesk-overlay-email-vld-message" data-vld-fn="Zonerama.isValidEmail($('#helpdesk-overlay-email').val())" data-vld-fn-message="E-mail není platný." />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="helpdesk-overlay-email-vld-message-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="helpdesk-overlay-email-vld-message" data-vld-container="#helpdesk-overlay-email-vld-message-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="helpdesk-overlay-subject">Předmět zprávy</label>
|
||||||
|
<select id="helpdesk-overlay-subject" name="select" tabindex="2" class="form-control">
|
||||||
|
<option value="Náměty a připomínky">Náměty a připomínky</option>
|
||||||
|
<option value="Technický problém">Technický problém</option>
|
||||||
|
<option value="Nabídka spolupráce">Nabídka spolupráce</option>
|
||||||
|
<option value="Nahlásit zneužití" data-show-panel="abuse">Nahlásit zneužití</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div data-panel="abuse" style="display: none;">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="d">Důvod hlášení</label>
|
||||||
|
<select id="helpdesk-overlay-abuse" name="select" tabindex="2" class="form-control">
|
||||||
|
<option value="Nevhodný obsah (erotika, násilí)">Nevhodný obsah (erotika, násilí)</option>
|
||||||
|
<option value="Hanobení skupin a propagace nezákonné činnosti">Hanobení skupin a propagace nezákonné činnosti</option>
|
||||||
|
<option data-req-note="true" value="Osobně urážlivý obsah (upřesním v poznámce)">Osobně urážlivý obsah (upřesním v poznámce)</option>
|
||||||
|
<option data-req-note="true" value="Porušení autorských práv (upřesním v poznámce)">Porušení autorských práv (upřesním v poznámce)</option>
|
||||||
|
<option data-id="another" data-req-note="true" value="Jiné porušení zásad (upřesním v poznámce)">Jiné porušení zásad (upřesním v poznámce)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="o">Hlášený obsah</label>
|
||||||
|
<input id="helpdesk-overlay-url" type="text" name="name" value="" class="form-control" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="helpdesk-overlay-text">Obsah zprávy</label>
|
||||||
|
<textarea class="form-control" rows="3" id="helpdesk-overlay-text" placeholder="Upřesněte požadavek..." data-watermark-class="form-faded" data-object="validator" data-vld-class="form-error" data-vld-message="#helpdesk-overlay-text-vld-message" data-vld-depends="#helpdesk-overlay-abuse" data-vld-fn="!$('#helpdesk-overlay-abuse option:selected').is('[data-req-note]') || $('#helpdesk-overlay-text').val().trim().length > 0" data-vld-fn-message="Povinná položka"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="helpdesk-overlay-text-vld-message-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="helpdesk-overlay-text-vld-message" data-vld-container="#helpdesk-overlay-text-vld-message-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-helpdesk-success" class="form-group" style="display: none;">
|
||||||
|
<div class="alert alert-success">Zpráva byla úspěšně odeslána, děkujeme</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
<button type="button" class="btn btn-success" id="helpdesk-submit">Odeslat</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-news" data-object="autoHeightDialog" tabindex="-1" role="dialog" aria-labelledby="dialog-news-label" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-firststeps" tabindex="-1" role="dialog" aria-labelledby="dialog-firststeps-label" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-download" tabindex="-1" role="dialog" aria-labelledby="dialog-download-label" aria-hidden="true" data-backdrop="static"></div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-settings" tabindex="-1" role="dialog" aria-labelledby="dialog-settings-label" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-video-cover" data-backdrop="static" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-move-album" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-sort-albums" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-move-photo" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-upload" data-backdrop="static" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-usage-rights" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-watermark" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-sort-photos" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-tab" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-tab-security" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-tab-create" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-security" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-import-picasa" tabindex="-1" role="dialog" aria-hidden="true" data-ajax-url="/View/Dialog/ImportPicasa"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-changeurl" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-pwd" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-layout" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-controls" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-tab-pwd" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-embed" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-professional" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-leave-shared-album" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-album-duplicates" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-proofing" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
<div class="modal fade" id="dialog-custom" tabindex="-1" role="dialog" aria-hidden="true"></div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-likes" tabindex="-1" role="dialog" aria-labelledby="dialog-likes-label" aria-hidden="true"></div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-edit-text" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog2">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h3 class="modal-title"></h3>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="text" class="form-control" data-select-onfocus="true" data-object="validator" data-vld-cache="false" data-vld-message="#dialog-edit-text-vld-message" data-vld-isvalid="true" />
|
||||||
|
<textarea class="form-control" rows="4" data-select-onfocus="true" data-object="validator" data-vld-cache="false" data-vld-message="#dialog-edit-text-vld-message" data-vld-isvalid="true"></textarea>
|
||||||
|
<span class="input-group-addon">.zonerama.com</span>
|
||||||
|
<div id="dialog-edit-text-counter" style="text-align:right; color: gray;"><span data-id="count">0</span>/<span data-id="max"></span></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-edit-text-vld-message-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="dialog-edit-text-vld-message" data-vld-container="#dialog-edit-text-vld-message-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="submit" class="btn btn-success">Uložit</button>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-edit-html" tabindex="-1" role="dialog" aria-hidden="true"
|
||||||
|
data-premium="False">
|
||||||
|
<div class="modal-dialog modal-dialog2">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h3 class="modal-title"></h3>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<div id="dialog-edit-html-editor"></div>
|
||||||
|
<div id="dialog-edit-html-counter" style="text-align:right; color: gray;"><span data-id="count">0</span>/<span data-id="max"></span></div>
|
||||||
|
<textarea id="dialog-edit-html-input" style="display: none;" data-object="validator" data-vld-cache="false" data-vld-message="#dialog-edit-text-vld-message" data-vld-isvalid="true"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dialog-edit-html-vld-message-container" class="form-group has-error" style="display: none;">
|
||||||
|
<div id="dialog-edit-html-vld-message" data-vld-container="#dialog-edit-html-vld-message-container" class="alert alert-danger" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="submit" class="btn btn-success">Uložit</button>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-confirm" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog2">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h3 class="modal-title" data-id="title"></h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" data-id="text">
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-danger" data-id="confirm" data-dismiss="modal"></button>
|
||||||
|
<button type="button" class="btn btn-success" data-id="close" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-progress" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
|
||||||
|
<div class="modal-dialog" style="width: 500px">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="modal-title"></h3>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="progress no-marg">
|
||||||
|
<div id="dialog-progress-bar" class="progress-bar progress-bar-success active progress-bar-striped no-marg" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-id="close">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="dialog-premium" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog" style="width: 500px">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h3 class="modal-title">Prémiová funkce</h3>
|
||||||
|
</div>
|
||||||
|
<form role="form">
|
||||||
|
<div class="modal-body">
|
||||||
|
Prémiové funkce galerie Zonerama mohou využívat exkluzivně pouze platící uživatelé programu Zoner Studio.
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="https://www.zoner.cz?utm_source=zonerama.com&utm_medium=referral&utm_campaign=premium_popup_notification" target="_blank" class="btn btn-success">Získat Zoner Studio</a>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="side-collapse-container-over"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="background-anim" class="full-animate" style="display:none;"><span></span></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fb-root"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- tracking social networks: Twitter -->
|
||||||
|
<img style="display:none;" src="https://twitter.com/login?redirect_after_login=%2Fimages%2Fspinner.gif" onload="Zonerama.GA.trackLoginStatus(3, 'Twitter', true)" onerror="Zonerama.GA.trackLoginStatus(3, 'Twitter', false)" />
|
||||||
|
|
||||||
|
<!-- Facebook is in FacebookSDK -->
|
||||||
|
|
||||||
|
<!-- ZONERAMA-WEB2 -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
+753
@@ -0,0 +1,753 @@
|
|||||||
|
<div>
|
||||||
|
|
||||||
|
<ul id="AlbumsInTab-tab1470757-albums" class="thumbnails list-unstyled list-albs list-albs-profile" data-object="flowLayout" data-layout-url="/JSON/FlowLayout_AlbumsInTab?tabId=1470757" data-layout-oncreate="Zonerama.Page.Profile.createItems(this,arguments[0])" data-layout-options="={ margin: 20, maxRowHeight: 428, minItemsOnRow: 1, maxItemsOnRow: 5, ratio: (560/428), onInit: _flowLayout_Tab1470757_OnInit }" data-layout-type="=Zonerama.FlowLayouts.get('rect')" data-layout-threshold="2000" data-layout-oninit="_flowLayout_Tab1470757_Init()" style="height: 7298px;" data-object-created="true"><li class="list-alb" style="position: absolute; top: 2441px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13726013" data-album-number="19" data-album-id="13726013" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13726013" class="thumbnail" title="Kategorie Muži FK Krnov 1:3 Brušperk">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie Muži FK Krnov 1:3 Brušperk
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>17. 8. 2025 |
|
||||||
|
<span>87</span> <i class="za-icon icon-images"></i> | <span>150</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13726013?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941598725400000" src="https://eu.zonerama.com/PublicAlbumCover/13726013?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941598725400000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 2441px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13774004" data-album-number="18" data-album-id="13774004" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13774004" class="thumbnail" title="Kategorie U14 Poruba Petřvald 4:0 Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 Poruba Petřvald 4:0 Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>23. 8. 2025 |
|
||||||
|
<span>41</span> <i class="za-icon icon-images"></i> | <span>80</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13774004?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13774004?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 2172px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13774084" data-album-number="17" data-album-id="13774084" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13774084" class="thumbnail" title="Kategorie U15 Poruba Petřvald 5:1 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 Poruba Petřvald 5:1 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>23. 8. 2025 |
|
||||||
|
<span>70</span> <i class="za-icon icon-images"></i> | <span>65</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13774084?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13774084?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 2172px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13796305" data-album-number="16" data-album-id="13796305" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13796305" class="thumbnail" title="Kategorie muži FK Krnov 2:0 Staré Město">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie muži FK Krnov 2:0 Staré Město
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>31. 8. 2025 |
|
||||||
|
<span>47</span> <i class="za-icon icon-images"></i> | <span>77</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13796305?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13796305?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1903px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13796374" data-album-number="15" data-album-id="13796374" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13796374" class="thumbnail" title="Kategorie U14 FK Krnov 2:6 Valašské Meziříčí">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 2:6 Valašské Meziříčí
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>30. 8. 2025 |
|
||||||
|
<span>33</span> <i class="za-icon icon-images"></i> | <span>29</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13796374?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13796374?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1903px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13796675" data-album-number="14" data-album-id="13796675" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13796675" class="thumbnail" title="Kategorie U15 FK Krnov 4:1 Valašské Meziříčí">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 4:1 Valašské Meziříčí
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>30. 8. 2025 |
|
||||||
|
<span>122</span> <i class="za-icon icon-images"></i> | <span>52</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13796675?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13796675?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1634px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13817517" data-album-number="13" data-album-id="13817517" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13817517" class="thumbnail" title="Kategorie U14 FK Krnov 0:22 Uničov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 0:22 Uničov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>3. 9. 2025 |
|
||||||
|
<span>39</span> <i class="za-icon icon-images"></i> | <span>6</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13817517?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13817517?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1634px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13817609" data-album-number="12" data-album-id="13817609" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13817609" class="thumbnail" title="Kategorie U15 FK Krnov 2:2 Uničov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:2 Uničov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>3. 9. 2025 |
|
||||||
|
<span>75</span> <i class="za-icon icon-images"></i> | <span>9</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13817609?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13817609?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1365px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13821005" data-album-number="11" data-album-id="13821005" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13821005" class="thumbnail" title="Katgorie U9 FK Krnov 22:3 Holasovice">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Katgorie U9 FK Krnov 22:3 Holasovice
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>5. 9. 2025 |
|
||||||
|
<span>47</span> <i class="za-icon icon-images"></i> | <span>18</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13821005?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942143115200000" src="https://eu.zonerama.com/PublicAlbumCover/13821005?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942143115200000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1365px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13825015" data-album-number="10" data-album-id="13825015" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13825015" class="thumbnail" title="Kategorie U14 FK Krnov 2:5 Šumperk">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 2:5 Šumperk
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>6. 9. 2025 |
|
||||||
|
<span>61</span> <i class="za-icon icon-images"></i> | <span>23</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13825015?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13825015?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1096px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13825217" data-album-number="9" data-album-id="13825217" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13825217" class="thumbnail" title="Kategorie U15 FK Krnov 2:6 Šumperk">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:6 Šumperk
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>6. 9. 2025 |
|
||||||
|
<span>98</span> <i class="za-icon icon-images"></i> | <span>63</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13825217?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942306593630000" src="https://eu.zonerama.com/PublicAlbumCover/13825217?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942306593630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 1096px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829100" data-album-number="8" data-album-id="13829100" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829100" class="thumbnail" title="Kategorie U17 FK Kofola Krnov 3:4 FC Odra Petřkovice">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U17 FK Kofola Krnov 3:4 FC Odra Petřkovice
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>83</span> <i class="za-icon icon-images"></i> | <span>63</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13829100?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13829100?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 827px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829315" data-album-number="7" data-album-id="13829315" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829315" class="thumbnail" title="Kategorie U13 FK Krnov 2:13 Třinec">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U13 FK Krnov 2:13 Třinec
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>73</span> <i class="za-icon icon-images"></i> | <span>21</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13829315?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942137793700000" src="https://eu.zonerama.com/PublicAlbumCover/13829315?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942137793700000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 827px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13829605" data-album-number="6" data-album-id="13829605" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13829605" class="thumbnail" title="Kategorie muži Město Albrechtice 2:2 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie muži Město Albrechtice 2:2 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>7. 9. 2025 |
|
||||||
|
<span>110</span> <i class="za-icon icon-images"></i> | <span>143</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13829605?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941597523700000" src="https://eu.zonerama.com/PublicAlbumCover/13829605?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941597523700000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 558px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13869074" data-album-number="5" data-album-id="13869074" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13869074" class="thumbnail" title="Kategorie U14 Bílovec 11:3 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 Bílovec 11:3 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>13. 9. 2025 |
|
||||||
|
<span>39</span> <i class="za-icon icon-images"></i> | <span>24</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13869074?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000" src="https://eu.zonerama.com/PublicAlbumCover/13869074?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941596125630000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 558px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13869180" data-album-number="4" data-album-id="13869180" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13869180" class="thumbnail" title="Kategorie U15 Bílovec 9:4 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 Bílovec 9:4 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>13. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>34</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13869180?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941674499700000" src="https://eu.zonerama.com/PublicAlbumCover/13869180?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941674499700000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 289px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13883373" data-album-number="3" data-album-id="13883373" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13883373" class="thumbnail" title="Kategorie U15 Třinec 1:4 FK Krnov">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 Třinec 1:4 FK Krnov
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>17. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>31</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13883373?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941649226300000" src="https://eu.zonerama.com/PublicAlbumCover/13883373?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638941649226300000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 289px; left: 20px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13903599" data-album-number="2" data-album-id="13903599" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903599" class="thumbnail" title="Kategorie U14 FK Krnov 1:12 Nový Jičín">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U14 FK Krnov 1:12 Nový Jičín
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>20. 9. 2025 |
|
||||||
|
<span>55</span> <i class="za-icon icon-images"></i> | <span>20</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13903599?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942905442530000" src="https://eu.zonerama.com/PublicAlbumCover/13903599?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638942905442530000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="abs-new"></div>
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 20px; left: 366px; width: 326px; height: 249px;" data-url="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610" data-album-number="1" data-album-id="13903610" data-tab-id="1470757">
|
||||||
|
<div class="spc" style="margin: 0px; width: 326px; height: 249px;">
|
||||||
|
<a href="https://eu.zonerama.com/FKKofolaKrnov/Album/13903610" class="thumbnail" title="Kategorie U15 FK Krnov 2:5 Nový Jičín">
|
||||||
|
<div class="caption caption-abs-white">
|
||||||
|
<div class="spc">
|
||||||
|
<h2>
|
||||||
|
Kategorie U15 FK Krnov 2:5 Nový Jičín
|
||||||
|
|
||||||
|
<i class="za-icon icon-face2" style="display: none;"></i>
|
||||||
|
<i class="za-icon icon-group" style="display: none;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Sdílené album"></i>
|
||||||
|
</h2>
|
||||||
|
<p>20. 9. 2025 |
|
||||||
|
<span>101</span> <i class="za-icon icon-images"></i> | <span>19</span> <i class="za-icon icon-eye"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="img" style="width: 326px; height: 249px;">
|
||||||
|
|
||||||
|
<img alt="" data-pattern="https://eu.zonerama.com/PublicAlbumCover/13903610?width={width}&height={height}&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638943189950930000" src="https://eu.zonerama.com/PublicAlbumCover/13903610?width=652&height=498&topStrip=True&mode=0&photoId=0&plusNumber=False&v=638943189950930000">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="abs-new"></div>
|
||||||
|
|
||||||
|
<div class="abs-r" data-id="icon-pwd" style="display: none;">
|
||||||
|
<div class="box box-icon popover-over " data-object="tooltip" data-tooltip-tooltip="=$('.popover',this)" data-tooltip-width="$(this).parents('.spc').width() - 20" data-tooltip-hover="=$(this).parents('.spc')" data-object-created="true">
|
||||||
|
<i class="za-icon icon-lock"></i>
|
||||||
|
<div style="display: none; right: -16px;" class="popover top">
|
||||||
|
<div class="popover-content">
|
||||||
|
<p>Zabezpečené heslem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li><li class="list-alb" style="position: absolute; top: 20px; left: 20px; width: 326px; height: 249px;" data-banner="album">
|
||||||
|
<div class="spc" style="width: 326px; height: 249px;">
|
||||||
|
<a href="/View/Banner/Open/68c91305aa78150ea89700d1" target="_blank" class="thumbnail">
|
||||||
|
<img src="https://eu.zonerama.com/View/Banner/Image?id=68c91305aa78150ea89700d1&width=652&height=498" data-pattern="https://eu.zonerama.com/View/Banner/Image?id=68c91305aa78150ea89700d1&width={width}&height={height}">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
+110
@@ -0,0 +1,110 @@
|
|||||||
|
<div class="row row-name row-name-album">
|
||||||
|
<div class="col-xs-12 col-sm-8 col-name clearfix ">
|
||||||
|
<div class="user-img">
|
||||||
|
<a href="/Profile/884961/1470757" preload="true">
|
||||||
|
<i class="za-icon icon-arrow-new"></i>
|
||||||
|
<div class="circle-avatar" style="background-image: url(https://eu.zonerama.com/ZA/Avatar/3883197?width=100&height=100); background-size: cover; display: inline-block;"> </div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="user-name">
|
||||||
|
<h2 class="user-name-h2">
|
||||||
|
<span>Kategorie U15 FK Krnov 2:5 Nový Jičín</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p class="album-info">
|
||||||
|
<span class="by"><small>od</small> <a href="/Profile/884961/1470757" class="gray-light">FK Kofola Krnov</a></span>
|
||||||
|
<span class="hide-on-phone">
|
||||||
|
<span>|</span> 20. 9. 2025
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
| <span title="" data-toggle="tooltip" data-original-title="Počet fotek"><span data-id="header-album-photos">101</span> <i class="za-icon icon-images"></i></span>
|
||||||
|
<span>|</span> <span title="" data-toggle="tooltip" data-original-title="Počet zhlédnutí"><span>19</span> <i class="za-icon icon-eye"></i></span> </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-4 shr-bar clearfix">
|
||||||
|
<div class="pull-right">
|
||||||
|
<table class="reset pull-right table-pull">
|
||||||
|
<tbody><tr>
|
||||||
|
|
||||||
|
<td class="td-ico" style="display: none;">
|
||||||
|
<a id="album-header-columns" href="javascript:void(0);" class="share-a"><i class="za-icon icon-layout" data-toggle="tooltip" title="" data-original-title="Rozložení fotek"></i></a>
|
||||||
|
</td>
|
||||||
|
<td class="td-ico" style="display: none;">
|
||||||
|
<a id="header-album-filter" href="javascript:void(0);" class="share-a" data-toggle="tooltip" title="" data-original-title="Filtry">
|
||||||
|
<i class="za-icon icon-abacus"></i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td class="td-ico" style="padding-right: 0;">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="popover-over " data-object="like" data-like-objectid="13903610" data-like-objecttype="1" data-default-text="Oblíbit" data-default-icon="icon-like" data-liked-text="Oblíbeno" data-liked-icon="icon-like" data-object-created="true">
|
||||||
|
<a data-id="like-btn" href="javascript:void(0);" class="share-a " data-toggle="tooltip" title="" data-ajax-loading-btn="false" data-original-title="Oblíbit">
|
||||||
|
|
||||||
|
<i data-id="like-icon" class="za-icon icon-like" style="font-size: 22px;"></i>
|
||||||
|
<span data-id="like-counter" style="display: inline-block; position: relative; font-size: 8px; line-height: normal; background-color: white; border: 1px solid black;
|
||||||
|
color: black; bottom: 0; left: -4px; text-align: center; padding: 0 2px 0 2px; margin: 0; border-radius: 2px; ">0</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div data-id="like-tooltip" class="popover bottom" data-ajax-url="/Part/Likers?id=13903610&type=1">
|
||||||
|
<div class="popover-content popover-content-img">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="td-ico">
|
||||||
|
<a id="header-album-download" href="javascript:void(0)" class="share-a" data-toggle="modal" data-target="#dialog-download" data-ajax-url="/View/Dialog/DownloadAlbum?albumId=13903610"><i data-toggle="tooltip" title="" class="za-icon icon-download" data-original-title="Stáhnout"></i></a>
|
||||||
|
</td>
|
||||||
|
<td class="td-ico"> <div class="navbar-share">
|
||||||
|
<div class="dropdown" style="float: none;">
|
||||||
|
<a href="javascript:void(0);" class="share-a" data-toggle="dropdown">
|
||||||
|
<i class="za-icon icon-share2" data-toggle="tooltip" title="" data-original-title="Možnosti sdílení"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="javascript:void(0);" data-id="native-share" data-btn="native-share"><i class="za-icon icon-share2"></i> Sdílet</a></li>
|
||||||
|
<li class="divider" data-id="native-share"></li>
|
||||||
|
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url="/View/Dialog/Share_Album/13903610?Service=znrm"><i class="za-icon icon-zonerama"></i> Zonerama</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url="/View/Dialog/Share_Album/13903610?Service=fb-share"><i class="za-icon icon-face"></i> Facebook</a></li>
|
||||||
|
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url="/View/Dialog/Share_Album/13903610?Service=twitter"><i class="zps-icon zps-icon-twe"></i> Twitter</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url="/View/Dialog/Share_Album/13903610?Service=email"><i class="zps-icon zps-icon-envelop"></i> E-mail</a></li>
|
||||||
|
<li><a href="javascript:void(0);" data-toggle="modal" data-target="#dialog-share-2019" data-ajax-url="/View/Dialog/Share_Album/13903610?Service=link"><i class="zps-icon zps-icon-link"></i> Odkaz</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td id="chromecast-album" data-object="chromecast" class="td-ico" style="display: none;" data-object-created="true">
|
||||||
|
<a href="javascript:void(0);" class="share-a" data-toggle="tooltip" data-original-title="Chromecast"><i class="za-icon icon-chromecast"></i></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="td-ico td-navbar-share">
|
||||||
|
<nav class="navbar navbar-default navbar-right navbar-share" role="navigation" data-toggle="tooltip" data-original-title="Další možnosti">
|
||||||
|
<ul class="nav navbar-nav navbar-right">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle nav-more" data-toggle="dropdown"><i class="za-icon icon-menu"></i></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
|
||||||
|
<li><a href="" data-toggle="modal" data-target="#dialog-helpdesk" data-id="report-abuse" data-ajax-url="/View/Dialog/Helpdesk?accountId=884961&albumId=13903610">Nahlásit zneužití</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</td>
|
||||||
|
<td class="td-ico hide-on-mobile">
|
||||||
|
<div class="data-center"><span>EU</span> <i class="za-icon icon-servers" data-toggle="tooltip" title="" data-original-title="Právě prohlížíte EU verzi Zoneramy."></i></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
+400
File diff suppressed because one or more lines are too long
+169
@@ -0,0 +1,169 @@
|
|||||||
|
<div class="full-gallery-spc0" style="overflow: hidden; position: relative;">
|
||||||
|
<div class="full-gallery-spc transition05" style="vertical-align: top; width: 353px; height: 654px; left: 40px;">
|
||||||
|
<!-- 320px (prevy sloupec) + vypocitana sirka fotky -->
|
||||||
|
|
||||||
|
<div data-id="navigator" style="position: absolute; top: 90px; right: 80px; z-index: 9999; cursor: pointer; border: 1px solid grey; display: none;">
|
||||||
|
|
||||||
|
<div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: static; display: inline-block; height: 100%; width: 100%;"><div id="navigator-565775525" class=" navigator" style="touch-action: none; margin: 0px; padding: 0px; display: inline-block; width: 150px; height: 100px; position: relative;"><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: relative; width: 100%; height: 100%; overflow: hidden; left: 0px; top: 0px; text-align: left;" class="openseadragon-container"><div class="openseadragon-canvas" tabindex="-1" style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; width: 100%; height: 100%; overflow: hidden; top: 0px; left: 0px; touch-action: none; text-align: left;" dir="ltr"><canvas width="2" height="2" style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; width: 100%; height: 100%;"></canvas><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: static;"></div></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; left: 0px; top: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; right: 0px; top: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; right: 0px; bottom: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; left: 0px; bottom: 0px;"></div><div id="navigator-565775525-displayregioncontainer" class="displayregioncontainer" style="background: none transparent; border: none; margin: 0px; padding: 0px; position: static; width: 100%; height: 100%; transform: rotate(0deg);"><div id="navigator-565775525-displayregion" class="displayregion" style="background: transparent; border: 2px solid rgb(153, 0, 0); margin: 0px; padding: 0px; position: relative; top: 0px; left: 0px; font-size: 0px; overflow: hidden; float: left; z-index: 999999999; cursor: default; transform: rotate(0deg); display: block; width: 2px; height: 1px;"></div></div></div></div></div></div>
|
||||||
|
|
||||||
|
<div class="full-gallery-spc2 transition05" style="width: 353px;">
|
||||||
|
<div data-id="view" class="clearfix" style="height: 654px; width: 353px;">
|
||||||
|
|
||||||
|
<img data-id="image" src="https://eu.zonerama.com/photos/565775525_706x470_16.jpg" style="position: absolute; width: 353px; height: 235px; top: 210px; left: 0px;" class="transition05">
|
||||||
|
<div style="margin-left: auto; margin-right: auto; opacity: 0; position: relative; height: 654px; display: block;" data-object="zoneramaPanZoom" data-panzoom-pyramid="=[{url: 'https://eu.zonerama.com/photos/565775525_750x500.jpg',width: 750,height: 500 },{url: 'https://eu.zonerama.com/photos/565775525_1500x1000.jpg',width: 1500,height: 1000 },{url: 'https://eu.zonerama.com/photos/565775525_3000x2000.jpg',width: 3000,height: 2000 },{url: 'https://eu.zonerama.com/photos/565775525_6000x4000.jpg',width: 6000,height: 4000 }]" data-panzoom-image="https://eu.zonerama.com/photos/565775525_6000x4000.jpg" data-panzoom-pattern="https://eu.zonerama.com/photos/565775525_{width}x{height}_16.jpg" data-panzoom-id="565775525" data-panzoom-imagewidth="6000" data-panzoom-imageheight="4000" data-panzoom-avif="False" oncontextmenu="return false;" data-object-created="true"><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: relative; width: 100%; height: 100%; overflow: hidden; left: 0px; top: 0px; text-align: left;" class="openseadragon-container"><div class="openseadragon-canvas" tabindex="0" style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; width: 100%; height: 100%; overflow: hidden; top: 0px; left: 0px; touch-action: none; text-align: left;" dir="ltr"><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; width: 100%; height: 100%;"><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; top: 209.333px; left: 0px; height: 236.333px; width: 354px;"><img src="https://eu.zonerama.com/photos/565775525_750x500.jpg" style="width: 100%; height: 100%;"></div></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: static;"></div></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; left: 0px; top: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; right: 0px; top: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; right: 0px; bottom: 0px;"></div><div style="background: none transparent; border: none; margin: 0px; padding: 0px; position: absolute; left: 0px; bottom: 0px;"></div></div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="photo-desc-data" style="width: 100%; text-align: center; display: none;">
|
||||||
|
<div data-id="photo-data-read" class="photo-desc-data-read">
|
||||||
|
<div class="spc">
|
||||||
|
<p class="photo-desc-data-name"></p>
|
||||||
|
<div class="scroll" style="overflow-y: auto;">
|
||||||
|
<p class="photo-desc-data-desc" data-object="Xscroll" data-scroll-set-container-height="false" data-object-created="true"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-id="photo-data-write" class="photo-desc-data-write" style="display: none;">
|
||||||
|
<div class="spc">
|
||||||
|
<div class="row-m photo-desc-data-name">
|
||||||
|
<input data-id="name" type="text" class="form-control" placeholder="Fotka nemá jméno" value="">
|
||||||
|
</div>
|
||||||
|
<div class="row-m photo-desc-data-desc">
|
||||||
|
<textarea data-id="text" class="form-control" rows="1" placeholder="Fotka nemá popis"></textarea>
|
||||||
|
</div>
|
||||||
|
<p class="small"><em>Stiskněte TAB pro přechod na následující/předchozí řádek | Stiskněte Enter pro přechod na další fotku</em></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="full-gallery-info transition05" style="top: 0px; right:40px; width: 320px; position: absolute;">
|
||||||
|
<div class="spc">
|
||||||
|
|
||||||
|
<div class="photo-desc-data-for-mobile">
|
||||||
|
<div class="photo-desc-data" style="display: none;">
|
||||||
|
<div data-id="photo-data-read" class="photo-desc-data-read">
|
||||||
|
<div class="spc">
|
||||||
|
<p class="photo-desc-data-name"></p>
|
||||||
|
<div class="scroll">
|
||||||
|
<p class="photo-desc-data-desc"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-id="photo-data-write" class="photo-desc-data-write" style="display: none;">
|
||||||
|
<div class="spc">
|
||||||
|
<div class="row-m photo-desc-data-name">
|
||||||
|
<input data-id="name" type="text" class="form-control" placeholder="Fotka nemá jméno" value="">
|
||||||
|
</div>
|
||||||
|
<div class="row-m photo-desc-data-desc">
|
||||||
|
<textarea data-object="autosize" data-id="text" class="form-control" placeholder="Fotka nemá popis" style="overflow: hidden; overflow-wrap: break-word; resize: horizontal; height: 34px;" data-object-created="true"></textarea>
|
||||||
|
</div>
|
||||||
|
<p class="small"><em>Stiskněte TAB pro přechod na následující/předchozí řádek | Stiskněte Enter pro přechod na další fotku</em></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="full-gallery-info-padd">
|
||||||
|
<ul class="reset cam-set">
|
||||||
|
<li>
|
||||||
|
<span class="ico ico1"></span>
|
||||||
|
<span class="text">320</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="ico ico2"></span>
|
||||||
|
<span class="text">1/1000 s</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="ico ico3"></span>
|
||||||
|
<span class="text">5.6</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<span class="ico ico4"></span>
|
||||||
|
<span class="text">262 mm</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="param">
|
||||||
|
<table cellpadding="0" cellspacing="0">
|
||||||
|
<tbody>
|
||||||
|
<tr><td title="Soubor"><span>Soubor:</span></td><td>IMG_8665.jpg</td></tr>
|
||||||
|
<tr><td title="Velikost"><span>Velikost:</span></td><td>9,19 MB</td></tr>
|
||||||
|
<tr><td title="Rozměry"><span>Rozměry:</span></td><td>6000 x 4000 x 24</td></tr>
|
||||||
|
<tr><td title="Datum vložení"><span>Datum vložení:</span></td><td>22. 9. 2025</td></tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Vytvořeno"><span>Vytvořeno:</span></td>
|
||||||
|
<td>
|
||||||
|
20.09.2025 11:16:51
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Změněno"><span>Změněno:</span></td>
|
||||||
|
<td>
|
||||||
|
20.09.2025 11:16:51
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
|
<tr>
|
||||||
|
<td title="ISO"><span>ISO:</span></td>
|
||||||
|
<td>
|
||||||
|
320
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Doba expozice"><span>Doba expozice:</span></td>
|
||||||
|
<td>
|
||||||
|
1/1000 s
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Clona"><span>Clona:</span></td>
|
||||||
|
<td>
|
||||||
|
5.6
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Ohnisková vzdálenost"><span>Ohnisková vzdálenost:</span></td>
|
||||||
|
<td>
|
||||||
|
262 mm
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Ohnisková vzdálenost (EQ35mm)"><span>Ohnisková vzdálenost (EQ35mm):</span></td>
|
||||||
|
<td>
|
||||||
|
419 mm
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Objektiv"><span>Objektiv:</span></td>
|
||||||
|
<td>
|
||||||
|
EF70-300mm f/4-5.6 IS II USM
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Kompenzace expozice"><span>Kompenzace expozice:</span></td>
|
||||||
|
<td>
|
||||||
|
0
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
|
<tr>
|
||||||
|
<td title="Fotoaparát"><span>Fotoaparát:</span></td>
|
||||||
|
<td>
|
||||||
|
Canon EOS 250D
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="fb">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user