Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00c9144010 | ||
|
|
44c02b45b4 | ||
|
|
5fb3b984b6 | ||
|
|
6f49533c94 |
@@ -1,3 +1,6 @@
|
||||
.vscode/
|
||||
__pycache__/
|
||||
byty_*.json
|
||||
*.json
|
||||
*.log
|
||||
|
||||
|
||||
@@ -3,9 +3,13 @@ CONTAINER_NAME := maru-hleda-byt
|
||||
VOLUME_NAME := maru-hleda-byt-data
|
||||
VALIDATION_CONTAINER := maru-hleda-byt-validation
|
||||
VALIDATION_VOLUME := maru-hleda-byt-validation-data
|
||||
DEBUG_CONTAINER := maru-hleda-byt-debug
|
||||
DEBUG_VOLUME := maru-hleda-byt-debug-data
|
||||
DEBUG_PORT ?= 8082
|
||||
PORT := 8080
|
||||
SERVER_PORT ?= 8080
|
||||
|
||||
.PHONY: build run stop logs scrape restart clean help validation validation-local validation-stop validation-local-debug serve serve-debug
|
||||
.PHONY: build run stop logs scrape restart clean help serve validation validation-local validation-stop validation-local-debug debug debug-stop
|
||||
|
||||
help:
|
||||
@echo "Available targets:"
|
||||
@@ -20,8 +24,9 @@ help:
|
||||
@echo " validation-local-debug - Run validation locally with DEBUG logging"
|
||||
@echo " restart - Restart the container (stop and run again)"
|
||||
@echo " clean - Stop container and remove the Docker image"
|
||||
@echo " serve - Run server.py locally (DATA_DIR=., port $(PORT))"
|
||||
@echo " serve-debug - Run server.py locally with DEBUG logging"
|
||||
@echo " serve - Start server.py locally on port 8080"
|
||||
@echo " debug - Build and run debug Docker container with limited scrape (port $(DEBUG_PORT))"
|
||||
@echo " debug-stop - Stop and remove the debug Docker container"
|
||||
@echo " help - Show this help message"
|
||||
|
||||
build:
|
||||
@@ -61,18 +66,33 @@ validation-stop:
|
||||
@docker rm $(VALIDATION_CONTAINER) 2>/dev/null || true
|
||||
@echo "Validation container stopped and removed"
|
||||
|
||||
debug: build
|
||||
@docker stop $(DEBUG_CONTAINER) 2>/dev/null || true
|
||||
@docker rm $(DEBUG_CONTAINER) 2>/dev/null || true
|
||||
docker run -d --name $(DEBUG_CONTAINER) \
|
||||
-p $(DEBUG_PORT):8080 \
|
||||
-v $(DEBUG_VOLUME):/app/data \
|
||||
-e LOG_LEVEL=DEBUG \
|
||||
$(IMAGE_NAME)
|
||||
@sleep 2
|
||||
docker exec $(DEBUG_CONTAINER) bash /app/run_all.sh --max-pages 1 --max-properties 10
|
||||
@echo "Debug app at http://localhost:$(DEBUG_PORT)/mapa_bytu.html"
|
||||
@echo "Debug status at http://localhost:$(DEBUG_PORT)/scrapers-status"
|
||||
|
||||
debug-stop:
|
||||
@docker stop $(DEBUG_CONTAINER) 2>/dev/null || true
|
||||
@docker rm $(DEBUG_CONTAINER) 2>/dev/null || true
|
||||
@echo "Debug container stopped and removed"
|
||||
|
||||
serve:
|
||||
DATA_DIR=. SERVER_PORT=$(SERVER_PORT) python3 server.py
|
||||
|
||||
validation-local:
|
||||
./run_all.sh --max-pages 1 --max-properties 10
|
||||
|
||||
validation-local-debug:
|
||||
./run_all.sh --max-pages 1 --max-properties 10 --log-level DEBUG
|
||||
|
||||
serve:
|
||||
DATA_DIR=. PORT=$(PORT) python server.py
|
||||
|
||||
serve-debug:
|
||||
DATA_DIR=. PORT=$(PORT) python server.py --verbose
|
||||
|
||||
restart: stop run
|
||||
|
||||
clean: stop
|
||||
|
||||
+3
-3
@@ -5,14 +5,14 @@ RUN apk add --no-cache curl bash tzdata \
|
||||
&& echo "Europe/Prague" > /etc/timezone
|
||||
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
RUN pip install --no-cache-dir flask
|
||||
ENV DATA_DIR=/app/data
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY scrape_and_map.py scrape_realingo.py scrape_bezrealitky.py \
|
||||
scrape_idnes.py scrape_psn.py scrape_cityhome.py \
|
||||
merge_and_map.py regen_map.py run_all.sh server.py ./
|
||||
merge_and_map.py regen_map.py generate_status.py scraper_stats.py \
|
||||
run_all.sh server.py ./
|
||||
|
||||
COPY build/crontab /etc/crontabs/root
|
||||
COPY build/entrypoint.sh /entrypoint.sh
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0 6,18 * * * cd /app && bash /app/run_all.sh >> /proc/1/fd/1 2>> /proc/1/fd/2
|
||||
0 */4 * * * cd /app && bash /app/run_all.sh >> /proc/1/fd/1 2>> /proc/1/fd/2
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
DATA_DIR="/app/data"
|
||||
export DATA_DIR="/app/data"
|
||||
|
||||
# Create symlinks so scripts (which write to /app/) persist data to the volume
|
||||
for f in byty_sreality.json byty_realingo.json byty_bezrealitky.json \
|
||||
@@ -18,5 +18,5 @@ crond -b -l 2
|
||||
echo "[entrypoint] Starting initial scrape in background..."
|
||||
bash /app/run_all.sh &
|
||||
|
||||
echo "[entrypoint] Starting combined server on port 8080..."
|
||||
exec DATA_DIR="$DATA_DIR" python3 /app/server.py
|
||||
echo "[entrypoint] Starting server on port 8080..."
|
||||
exec python3 /app/server.py
|
||||
|
||||
+403
-16
@@ -1,4 +1,38 @@
|
||||
[
|
||||
{
|
||||
"hash_id": 990183,
|
||||
"name": "Prodej bytu 3+kk 86 m²",
|
||||
"price": 10385000,
|
||||
"price_formatted": "10 385 000 Kč",
|
||||
"locality": "Ke Tvrzi, Praha - Královice",
|
||||
"lat": 50.0390519,
|
||||
"lon": 14.63862,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 86,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/990183-nabidka-prodej-bytu-ke-tvrzi-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 989862,
|
||||
"name": "Prodej bytu 3+kk 73 m²",
|
||||
"price": 12790000,
|
||||
"price_formatted": "12 790 000 Kč",
|
||||
"locality": "Vrázova, Praha - Smíchov",
|
||||
"lat": 50.0711312,
|
||||
"lon": 14.4076652,
|
||||
"disposition": "3+kk",
|
||||
"floor": 3,
|
||||
"area": 73,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/989862-nabidka-prodej-bytu-vrazova-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 981278,
|
||||
"name": "Prodej bytu 3+kk 70 m²",
|
||||
@@ -14,27 +48,380 @@
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/981278-nabidka-prodej-bytu-argentinska-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": "",
|
||||
"first_seen": "2026-02-15",
|
||||
"last_updated": "2026-02-15"
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 991217,
|
||||
"name": "Prodej bytu 3+kk 71 m²",
|
||||
"price": 11490000,
|
||||
"price_formatted": "11 490 000 Kč",
|
||||
"locality": "Kolbenova, Praha - Vysočany",
|
||||
"lat": 50.1113213,
|
||||
"lon": 14.5106858,
|
||||
"hash_id": 989817,
|
||||
"name": "Prodej bytu 3+kk 88 m²",
|
||||
"price": 13490000,
|
||||
"price_formatted": "13 490 000 Kč",
|
||||
"locality": "Miroslava Hajna, Praha - Letňany",
|
||||
"lat": 50.1406487,
|
||||
"lon": 14.5207541,
|
||||
"disposition": "3+kk",
|
||||
"floor": 3,
|
||||
"area": 71,
|
||||
"floor": 2,
|
||||
"area": 88,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/991217-nabidka-prodej-bytu-kolbenova-praha",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/989817-nabidka-prodej-bytu-miroslava-hajna-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": "",
|
||||
"last_updated": "2026-02-15",
|
||||
"first_seen": "2026-02-15"
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 970257,
|
||||
"name": "Prodej bytu 3+1 106 m²",
|
||||
"price": 12950000,
|
||||
"price_formatted": "12 950 000 Kč",
|
||||
"locality": "Novákových, Praha - Libeň",
|
||||
"lat": 50.1034771,
|
||||
"lon": 14.4758735,
|
||||
"disposition": "3+1",
|
||||
"floor": 5,
|
||||
"area": 106,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/970257-nabidka-prodej-bytu-novakovych-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 972406,
|
||||
"name": "Prodej bytu 3+kk 83 m²",
|
||||
"price": 10490000,
|
||||
"price_formatted": "10 490 000 Kč",
|
||||
"locality": "Na Výrovně, Praha - Stodůlky",
|
||||
"lat": 50.0396067,
|
||||
"lon": 14.3167022,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 83,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/972406-nabidka-prodej-bytu-na-vyrovne",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 967142,
|
||||
"name": "Prodej bytu 3+kk 78 m²",
|
||||
"price": 11648000,
|
||||
"price_formatted": "11 648 000 Kč",
|
||||
"locality": "Na Míčánkách, Praha - Vršovice",
|
||||
"lat": 50.0713284,
|
||||
"lon": 14.4638722,
|
||||
"disposition": "3+kk",
|
||||
"floor": 6,
|
||||
"area": 78,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/967142-nabidka-prodej-bytu-na-micankach",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 955977,
|
||||
"name": "Prodej bytu 4+kk 75 m²",
|
||||
"price": 10363000,
|
||||
"price_formatted": "10 363 000 Kč",
|
||||
"locality": "Karla Guta, Praha - Uhříněves",
|
||||
"lat": 50.03017,
|
||||
"lon": 14.5940072,
|
||||
"disposition": "4+kk",
|
||||
"floor": 4,
|
||||
"area": 75,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/955977-nabidka-prodej-bytu-karla-guta",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 974557,
|
||||
"name": "Prodej bytu 4+kk 94 m²",
|
||||
"price": 13499900,
|
||||
"price_formatted": "13 499 900 Kč",
|
||||
"locality": "V Dolině, Praha - Michle",
|
||||
"lat": 50.0579963,
|
||||
"lon": 14.4682887,
|
||||
"disposition": "4+kk",
|
||||
"floor": 8,
|
||||
"area": 94,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/974557-nabidka-prodej-bytu-v-doline-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 988498,
|
||||
"name": "Prodej bytu 3+1 75 m²",
|
||||
"price": 11400000,
|
||||
"price_formatted": "11 400 000 Kč",
|
||||
"locality": "5. května, Praha - Nusle",
|
||||
"lat": 50.0604096,
|
||||
"lon": 14.4326302,
|
||||
"disposition": "3+1",
|
||||
"floor": 4,
|
||||
"area": 75,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/988498-nabidka-prodej-bytu-5-kvetna-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 985285,
|
||||
"name": "Prodej bytu 3+kk 70 m²",
|
||||
"price": 12200000,
|
||||
"price_formatted": "12 200 000 Kč",
|
||||
"locality": "Klausova, Praha - Stodůlky",
|
||||
"lat": 50.0370204,
|
||||
"lon": 14.3432643,
|
||||
"disposition": "3+kk",
|
||||
"floor": 5,
|
||||
"area": 70,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/985285-nabidka-prodej-bytu-klausova-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 965526,
|
||||
"name": "Prodej bytu 3+kk 77 m²",
|
||||
"price": 11890000,
|
||||
"price_formatted": "11 890 000 Kč",
|
||||
"locality": "Vinohradská, Praha - Strašnice",
|
||||
"lat": 50.0776726,
|
||||
"lon": 14.4870072,
|
||||
"disposition": "3+kk",
|
||||
"floor": 16,
|
||||
"area": 77,
|
||||
"building_type": "Smíšená",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/965526-nabidka-prodej-bytu-vinohradska-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 924811,
|
||||
"name": "Prodej bytu 3+kk 75 m²",
|
||||
"price": 13390000,
|
||||
"price_formatted": "13 390 000 Kč",
|
||||
"locality": "Waltariho, Praha - Hloubětín",
|
||||
"lat": 50.1076717,
|
||||
"lon": 14.5248559,
|
||||
"disposition": "3+kk",
|
||||
"floor": 4,
|
||||
"area": 75,
|
||||
"building_type": "Smíšená",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/924811-nabidka-prodej-bytu-waltariho-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 985859,
|
||||
"name": "Prodej bytu 3+1 80 m²",
|
||||
"price": 9000000,
|
||||
"price_formatted": "9 000 000 Kč",
|
||||
"locality": "Staňkova, Praha - Háje",
|
||||
"lat": 50.0377128,
|
||||
"lon": 14.5311557,
|
||||
"disposition": "3+1",
|
||||
"floor": 2,
|
||||
"area": 80,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/985859-nabidka-prodej-bytu-stankova-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 985583,
|
||||
"name": "Prodej bytu 3+kk 76 m²",
|
||||
"price": 10850000,
|
||||
"price_formatted": "10 850 000 Kč",
|
||||
"locality": "Boloňská, Praha - Horní Měcholupy",
|
||||
"lat": 50.047328,
|
||||
"lon": 14.5565277,
|
||||
"disposition": "3+kk",
|
||||
"floor": 4,
|
||||
"area": 76,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/985583-nabidka-prodej-bytu-bolonska-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 981178,
|
||||
"name": "Prodej bytu 4+kk 86 m²",
|
||||
"price": 11990000,
|
||||
"price_formatted": "11 990 000 Kč",
|
||||
"locality": "Sušilova, Praha - Uhříněves",
|
||||
"lat": 50.032081,
|
||||
"lon": 14.5885148,
|
||||
"disposition": "4+kk",
|
||||
"floor": 2,
|
||||
"area": 86,
|
||||
"building_type": "SKELET",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/981178-nabidka-prodej-bytu-susilova-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 973216,
|
||||
"name": "Prodej bytu 4+1 82 m²",
|
||||
"price": 11357000,
|
||||
"price_formatted": "11 357 000 Kč",
|
||||
"locality": "Nad Kapličkou, Praha - Strašnice",
|
||||
"lat": 50.0839509,
|
||||
"lon": 14.4904493,
|
||||
"disposition": "4+1",
|
||||
"floor": 2,
|
||||
"area": 82,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/973216-nabidka-prodej-bytu-nad-kaplickou-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 868801,
|
||||
"name": "Prodej bytu 3+kk 109 m²",
|
||||
"price": 7299000,
|
||||
"price_formatted": "7 299 000 Kč",
|
||||
"locality": "Pod Karlovem, Praha - Vinohrady",
|
||||
"lat": 50.0676313,
|
||||
"lon": 14.432498,
|
||||
"disposition": "3+kk",
|
||||
"floor": 5,
|
||||
"area": 109,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Družstevní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/868801-nabidka-prodej-bytu-pod-karlovem-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 868795,
|
||||
"name": "Prodej bytu 3+kk 106 m²",
|
||||
"price": 6299000,
|
||||
"price_formatted": "6 299 000 Kč",
|
||||
"locality": "Pod Karlovem, Praha - Vinohrady",
|
||||
"lat": 50.0676313,
|
||||
"lon": 14.432498,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 106,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Družstevní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/868795-nabidka-prodej-bytu-pod-karlovem-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 981890,
|
||||
"name": "Prodej bytu 3+1 84 m²",
|
||||
"price": 12980000,
|
||||
"price_formatted": "12 980 000 Kč",
|
||||
"locality": "Novákových, Praha - Libeň",
|
||||
"lat": 50.103273,
|
||||
"lon": 14.4746894,
|
||||
"disposition": "3+1",
|
||||
"floor": 2,
|
||||
"area": 84,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/981890-nabidka-prodej-bytu-novakovych-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 976276,
|
||||
"name": "Prodej bytu 3+kk 75 m²",
|
||||
"price": 13490000,
|
||||
"price_formatted": "13 490 000 Kč",
|
||||
"locality": "Svornosti, Praha - Smíchov",
|
||||
"lat": 50.0673284,
|
||||
"lon": 14.4095087,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 75,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/976276-nabidka-prodej-bytu-svornosti-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 950787,
|
||||
"name": "Prodej bytu 3+kk 70 m²",
|
||||
"price": 9999000,
|
||||
"price_formatted": "9 999 000 Kč",
|
||||
"locality": "Sečská, Praha - Strašnice",
|
||||
"lat": 50.071191,
|
||||
"lon": 14.5035501,
|
||||
"disposition": "3+kk",
|
||||
"floor": 3,
|
||||
"area": 70,
|
||||
"building_type": "Smíšená",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/950787-nabidka-prodej-bytu-secska-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 978045,
|
||||
"name": "Prodej bytu 3+kk 76 m²",
|
||||
"price": 11133000,
|
||||
"price_formatted": "11 133 000 Kč",
|
||||
"locality": "K Vinoři, Praha - Kbely",
|
||||
"lat": 50.1329656,
|
||||
"lon": 14.5618499,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 76,
|
||||
"building_type": "Smíšená",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/978045-nabidka-prodej-bytu-k-vinori",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 974552,
|
||||
"name": "Prodej bytu 3+1 75 m²",
|
||||
"price": 11000000,
|
||||
"price_formatted": "11 000 000 Kč",
|
||||
"locality": "Vejražkova, Praha - Košíře",
|
||||
"lat": 50.0637808,
|
||||
"lon": 14.3612275,
|
||||
"disposition": "3+1",
|
||||
"floor": 2,
|
||||
"area": 75,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/974552-nabidka-prodej-bytu-vejrazkova-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
},
|
||||
{
|
||||
"hash_id": 955010,
|
||||
"name": "Prodej bytu 3+kk 70 m²",
|
||||
"price": 12290000,
|
||||
"price_formatted": "12 290 000 Kč",
|
||||
"locality": "Břeclavská, Praha - Kyje",
|
||||
"lat": 50.0951045,
|
||||
"lon": 14.5454237,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 70,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "Osobní",
|
||||
"url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/955010-nabidka-prodej-bytu-breclavska-hlavni-mesto-praha",
|
||||
"source": "bezrealitky",
|
||||
"image": ""
|
||||
}
|
||||
]
|
||||
+1
-38
@@ -1,38 +1 @@
|
||||
[
|
||||
{
|
||||
"hash_id": "cityhome_na-vaclavce-34_Byt A2.3",
|
||||
"name": "Prodej bytu 3+1, 99 m² — Na Václavce 34",
|
||||
"price": 13490000,
|
||||
"price_formatted": "13 490 000 Kč",
|
||||
"locality": "Na Václavce 34, Praha 5",
|
||||
"lat": 50.0652858,
|
||||
"lon": 14.3931318,
|
||||
"disposition": "3+1",
|
||||
"floor": 2,
|
||||
"area": 99.1,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "neuvedeno",
|
||||
"url": "https://www.city-home.cz/projekty/na-vaclavce-34/nabidka-nemovitosti/byt-a23",
|
||||
"source": "cityhome",
|
||||
"image": "",
|
||||
"scraped_at": "2026-02-25"
|
||||
},
|
||||
{
|
||||
"hash_id": "cityhome_na-vaclavce-34_Byt A3.2",
|
||||
"name": "Prodej bytu 3+1, 95 m² — Na Václavce 34",
|
||||
"price": 13490000,
|
||||
"price_formatted": "13 490 000 Kč",
|
||||
"locality": "Na Václavce 34, Praha 5",
|
||||
"lat": 50.0652858,
|
||||
"lon": 14.3931318,
|
||||
"disposition": "3+1",
|
||||
"floor": 3,
|
||||
"area": 95.6,
|
||||
"building_type": "Cihlová",
|
||||
"ownership": "neuvedeno",
|
||||
"url": "https://www.city-home.cz/projekty/na-vaclavce-34/nabidka-nemovitosti/byt-a32",
|
||||
"source": "cityhome",
|
||||
"image": "",
|
||||
"scraped_at": "2026-02-25"
|
||||
}
|
||||
]
|
||||
[]
|
||||
|
||||
+5785
-208
File diff suppressed because it is too large
Load Diff
+11836
-778
File diff suppressed because it is too large
Load Diff
+1
-20
@@ -1,20 +1 @@
|
||||
[
|
||||
{
|
||||
"hash_id": "8941",
|
||||
"name": "Prodej bytu 3+kk, 102 m² — JITRO",
|
||||
"price": 13994000,
|
||||
"price_formatted": "13 994 000 Kč",
|
||||
"locality": "Litevská 1174/8, Praha 10",
|
||||
"lat": 50.0729,
|
||||
"lon": 14.4767,
|
||||
"disposition": "3+kk",
|
||||
"floor": 2,
|
||||
"area": 102.7,
|
||||
"building_type": "neuvedeno",
|
||||
"ownership": "osobní",
|
||||
"url": "https://psn.cz/prodej/ubytovaci-jednotka-3-kk-litevska-praha-10-vrsovice-lit4219",
|
||||
"source": "psn",
|
||||
"image": "",
|
||||
"scraped_at": "2026-02-25"
|
||||
}
|
||||
]
|
||||
[]
|
||||
|
||||
+7007
-80
File diff suppressed because it is too large
Load Diff
+5498
-476
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,123 @@
|
||||
# Validation Recipe
|
||||
|
||||
End-to-end check that scraping, data persistence, history, and the status page all work correctly in Docker.
|
||||
|
||||
## What it verifies
|
||||
|
||||
- All scrapers run and write output to `DATA_DIR` (`/app/data`)
|
||||
- `stats_*.json` land in `/app/data/` (not in `/app/`)
|
||||
- `status.json` and `scraper_history.json` land in `/app/data/`
|
||||
- `/api/status`, `/api/status/history`, and `/scrapers-status` serve correct data
|
||||
- History accumulates across runs
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Build the image
|
||||
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
|
||||
### 2. Start a clean validation container
|
||||
|
||||
```bash
|
||||
# Stop/remove any leftover container and volume from a previous run
|
||||
docker stop maru-hleda-byt-validation 2>/dev/null; docker rm maru-hleda-byt-validation 2>/dev/null
|
||||
docker volume rm maru-hleda-byt-validation-data 2>/dev/null
|
||||
|
||||
docker run -d --name maru-hleda-byt-validation \
|
||||
-p 8081:8080 \
|
||||
-v maru-hleda-byt-validation-data:/app/data \
|
||||
maru-hleda-byt
|
||||
```
|
||||
|
||||
Give the container ~3 seconds to start. The entrypoint launches a background full scrape automatically — suppress it so only controlled runs execute:
|
||||
|
||||
```bash
|
||||
sleep 3
|
||||
docker exec maru-hleda-byt-validation pkill -f run_all.sh 2>/dev/null || true
|
||||
docker exec maru-hleda-byt-validation rm -f /app/data/scraper_running.json 2>/dev/null || true
|
||||
```
|
||||
|
||||
### 3. Run a limited scrape (run 1)
|
||||
|
||||
```bash
|
||||
docker exec maru-hleda-byt-validation bash /app/run_all.sh --max-pages 1 --max-properties 10
|
||||
```
|
||||
|
||||
Expected output (last few lines):
|
||||
```
|
||||
Status uložen: /app/data/status.json
|
||||
Historie uložena: /app/data/scraper_history.json (1 záznamů)
|
||||
```
|
||||
|
||||
### 4. Verify data files are in `/app/data/`
|
||||
|
||||
```bash
|
||||
docker exec maru-hleda-byt-validation ls /app/data/
|
||||
```
|
||||
|
||||
Expected files:
|
||||
```
|
||||
byty_cityhome.json byty_idnes.json byty_merged.json
|
||||
byty_realingo.json byty_sreality.json
|
||||
mapa_bytu.html
|
||||
scraper_history.json
|
||||
stats_bezrealitky.json stats_cityhome.json stats_idnes.json
|
||||
stats_realingo.json stats_sreality.json
|
||||
status.json
|
||||
```
|
||||
|
||||
### 5. Run a second limited scrape (run 2)
|
||||
|
||||
```bash
|
||||
docker exec maru-hleda-byt-validation bash /app/run_all.sh --max-pages 1 --max-properties 10
|
||||
```
|
||||
|
||||
Expected last line: `Historie uložena: /app/data/scraper_history.json (2 záznamů)`
|
||||
|
||||
### 6. Verify history via API
|
||||
|
||||
```bash
|
||||
curl -s http://localhost:8081/api/status/history | python3 -c "
|
||||
import json, sys
|
||||
h = json.load(sys.stdin)
|
||||
print(f'{len(h)} entries:')
|
||||
for i, e in enumerate(h):
|
||||
print(f' [{i}] {e[\"timestamp\"]} total={e[\"total_accepted\"]}')
|
||||
"
|
||||
```
|
||||
|
||||
Expected: 2 entries with different timestamps.
|
||||
|
||||
```bash
|
||||
curl -s http://localhost:8081/api/status | python3 -c "
|
||||
import json, sys; s=json.load(sys.stdin)
|
||||
print(f'status={s[\"status\"]} total={s[\"total_accepted\"]} ts={s[\"timestamp\"]}')
|
||||
"
|
||||
```
|
||||
|
||||
Expected: `status=done total=<N> ts=<latest timestamp>`
|
||||
|
||||
### 7. Check the status page
|
||||
|
||||
Open http://localhost:8081/scrapers-status in a browser (or `curl -s http://localhost:8081/scrapers-status | grep -c "clickable-row"` — should print `2`).
|
||||
|
||||
### 8. Clean up
|
||||
|
||||
```bash
|
||||
docker stop maru-hleda-byt-validation && docker rm maru-hleda-byt-validation
|
||||
docker volume rm maru-hleda-byt-validation-data
|
||||
```
|
||||
|
||||
Or use the Makefile shortcut:
|
||||
|
||||
```bash
|
||||
make validation-stop
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- PSN scraper does not support `--max-pages` and will always fail with this command; `success=False` in history is expected during validation.
|
||||
- Bezrealitky may return 0 results with a 1-page limit; `byty_bezrealitky.json` will be absent from `/app/data/` in that case — this is normal.
|
||||
- `make validation` (the Makefile target) runs the same limited scrape but does not suppress the background startup scrape, so two concurrent runs may occur. Use the manual steps above for a clean controlled test.
|
||||
+61
-102
@@ -1,16 +1,15 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Generate status.json from scraper JSON outputs and run log."""
|
||||
"""Generate status.json from scraper JSON outputs and per-scraper stats files."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
HERE = Path(__file__).parent
|
||||
DATA_DIR = Path(os.environ.get("DATA_DIR", HERE))
|
||||
|
||||
SOURCE_FILES = {
|
||||
"Sreality": "byty_sreality.json",
|
||||
@@ -21,7 +20,17 @@ SOURCE_FILES = {
|
||||
"CityHome": "byty_cityhome.json",
|
||||
}
|
||||
|
||||
STATS_FILES = {
|
||||
"Sreality": "stats_sreality.json",
|
||||
"Realingo": "stats_realingo.json",
|
||||
"Bezrealitky": "stats_bezrealitky.json",
|
||||
"iDNES": "stats_idnes.json",
|
||||
"PSN": "stats_psn.json",
|
||||
"CityHome": "stats_cityhome.json",
|
||||
}
|
||||
|
||||
MERGED_FILE = "byty_merged.json"
|
||||
HISTORY_FILE = "scraper_history.json"
|
||||
|
||||
|
||||
def count_source(path: Path) -> dict:
|
||||
@@ -36,105 +45,51 @@ def count_source(path: Path) -> dict:
|
||||
return {"accepted": 0, "error": str(e)}
|
||||
|
||||
|
||||
def parse_log(log_path: str) -> dict[str, dict]:
|
||||
"""Parse scraper run log and extract per-source statistics.
|
||||
|
||||
Scrapers log summary lines like:
|
||||
✓ Vyhovující byty: 12
|
||||
Vyloučeno (prodáno): 5
|
||||
Staženo stránek: 3
|
||||
Staženo inzerátů: 48
|
||||
Celkem bytů v cache: 120
|
||||
and section headers like:
|
||||
[2/6] Realingo
|
||||
"""
|
||||
if not log_path or not os.path.exists(log_path):
|
||||
def read_scraper_stats(path: Path) -> dict:
|
||||
"""Load a per-scraper stats JSON. Returns {} on missing or corrupt file."""
|
||||
if not path.exists():
|
||||
return {}
|
||||
try:
|
||||
data = json.loads(path.read_text(encoding="utf-8"))
|
||||
return data if isinstance(data, dict) else {}
|
||||
except Exception:
|
||||
return {}
|
||||
|
||||
with open(log_path, encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
|
||||
# Split into per-source sections by the [N/6] Step header
|
||||
# Each section header looks like "[2/6] Realingo\n----..."
|
||||
section_pattern = re.compile(r'\[(\d+)/\d+\]\s+(.+)\n-+', re.MULTILINE)
|
||||
sections_found = list(section_pattern.finditer(content))
|
||||
def append_to_history(status: dict, keep: int) -> None:
|
||||
"""Append the current status entry to scraper_history.json, keeping only `keep` latest."""
|
||||
history_path = DATA_DIR / HISTORY_FILE
|
||||
history: list = []
|
||||
if history_path.exists():
|
||||
try:
|
||||
history = json.loads(history_path.read_text(encoding="utf-8"))
|
||||
if not isinstance(history, list):
|
||||
history = []
|
||||
except Exception:
|
||||
history = []
|
||||
|
||||
if not sections_found:
|
||||
return {}
|
||||
history.append(status)
|
||||
|
||||
stats = {}
|
||||
for i, match in enumerate(sections_found):
|
||||
step_name = match.group(2).strip()
|
||||
start = match.end()
|
||||
end = sections_found[i + 1].start() if i + 1 < len(sections_found) else len(content)
|
||||
section_text = content[start:end]
|
||||
# Keep only the N most recent entries
|
||||
if keep > 0 and len(history) > keep:
|
||||
history = history[-keep:]
|
||||
|
||||
# Identify which sources this section covers
|
||||
# "PSN + CityHome" covers both
|
||||
source_names = []
|
||||
for name in SOURCE_FILES:
|
||||
if name.lower() in step_name.lower():
|
||||
source_names.append(name)
|
||||
if not source_names:
|
||||
continue
|
||||
|
||||
# Parse numeric summary lines
|
||||
def extract(pattern: str) -> Optional[int]:
|
||||
m = re.search(pattern, section_text)
|
||||
return int(m.group(1)) if m else None
|
||||
|
||||
# Lines present in all/most scrapers
|
||||
accepted = extract(r'Vyhovující byty[:\s]+(\d+)')
|
||||
fetched = extract(r'Staženo inzerátů[:\s]+(\d+)')
|
||||
pages = extract(r'Staženo stránek[:\s]+(\d+)')
|
||||
cached = extract(r'Celkem bytů v cache[:\s]+(\d+)')
|
||||
cache_hits = extract(r'Cache hit[:\s]+(\d+)')
|
||||
|
||||
# Rejection reasons — collect all into a dict
|
||||
excluded = {}
|
||||
for m in re.finditer(r'Vyloučeno\s+\(([^)]+)\)[:\s]+(\d+)', section_text):
|
||||
excluded[m.group(1)] = int(m.group(2))
|
||||
# Also PSN-style "Vyloučeno (prodáno): N"
|
||||
total_excluded = sum(excluded.values()) if excluded else extract(r'Vyloučen\w*[:\s]+(\d+)')
|
||||
|
||||
entry = {}
|
||||
if accepted is not None:
|
||||
entry["accepted"] = accepted
|
||||
if fetched is not None:
|
||||
entry["fetched"] = fetched
|
||||
if pages is not None:
|
||||
entry["pages"] = pages
|
||||
if cached is not None:
|
||||
entry["cached"] = cached
|
||||
if cache_hits is not None:
|
||||
entry["cache_hits"] = cache_hits
|
||||
if excluded:
|
||||
entry["excluded"] = excluded
|
||||
elif total_excluded is not None:
|
||||
entry["excluded_total"] = total_excluded
|
||||
|
||||
for name in source_names:
|
||||
stats[name] = entry
|
||||
|
||||
return stats
|
||||
history_path.write_text(json.dumps(history, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
print(f"Historie uložena: {history_path} ({len(history)} záznamů)")
|
||||
|
||||
|
||||
def main():
|
||||
start_time = None
|
||||
duration_sec = None
|
||||
parser = argparse.ArgumentParser(description="Generate status.json from scraper outputs.")
|
||||
parser.add_argument("--start-time", dest="start_time", default=None,
|
||||
help="ISO timestamp of scrape start (default: now)")
|
||||
parser.add_argument("--duration", dest="duration", type=int, default=None,
|
||||
help="Run duration in seconds")
|
||||
parser.add_argument("--keep", dest="keep", type=int, default=20,
|
||||
help="Number of history entries to keep (default: 20, 0=unlimited)")
|
||||
args = parser.parse_args()
|
||||
|
||||
if len(sys.argv) >= 3:
|
||||
start_time = sys.argv[1]
|
||||
try:
|
||||
duration_sec = int(sys.argv[2])
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
if not start_time:
|
||||
start_time = datetime.now().isoformat(timespec="seconds")
|
||||
|
||||
log_path = sys.argv[3] if len(sys.argv) >= 4 else None
|
||||
log_stats = parse_log(log_path)
|
||||
start_time = args.start_time or datetime.now().isoformat(timespec="seconds")
|
||||
duration_sec = args.duration
|
||||
|
||||
sources = []
|
||||
for name, filename in SOURCE_FILES.items():
|
||||
@@ -142,14 +97,12 @@ def main():
|
||||
info = count_source(path)
|
||||
info["name"] = name
|
||||
|
||||
# Merge log stats
|
||||
ls = log_stats.get(name, {})
|
||||
for k in ("fetched", "pages", "cached", "cache_hits", "excluded", "excluded_total"):
|
||||
if k in ls:
|
||||
info[k] = ls[k]
|
||||
# Override accepted from log if available (log is authoritative for latest run)
|
||||
if "accepted" in ls:
|
||||
info["accepted"] = ls["accepted"]
|
||||
# Merge in stats from the per-scraper stats file (authoritative for run data)
|
||||
stats = read_scraper_stats(DATA_DIR / STATS_FILES[name])
|
||||
for key in ("accepted", "fetched", "pages", "cache_hits", "excluded", "excluded_total",
|
||||
"success", "duration_sec", "error"):
|
||||
if key in stats:
|
||||
info[key] = stats[key]
|
||||
|
||||
sources.append(info)
|
||||
|
||||
@@ -168,17 +121,21 @@ def main():
|
||||
|
||||
duplicates_removed = total_accepted - deduplicated if deduplicated else 0
|
||||
|
||||
# Top-level success: True if no source has an error
|
||||
success = not any("error" in s for s in sources)
|
||||
|
||||
status = {
|
||||
"status": "done",
|
||||
"timestamp": start_time,
|
||||
"duration_sec": duration_sec,
|
||||
"success": success,
|
||||
"total_accepted": total_accepted,
|
||||
"deduplicated": deduplicated,
|
||||
"duplicates_removed": duplicates_removed,
|
||||
"sources": sources,
|
||||
}
|
||||
|
||||
out = HERE / "status.json"
|
||||
out = DATA_DIR / "status.json"
|
||||
out.write_text(json.dumps(status, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
print(f"Status uložen: {out}")
|
||||
print(f" Celkem bytů (před dedup): {total_accepted}")
|
||||
@@ -197,6 +154,8 @@ def main():
|
||||
parts.append(f"[CHYBA: {err}]")
|
||||
print(" " + " ".join(parts))
|
||||
|
||||
append_to_history(status, args.keep)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
+124
-61
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Byty v Praze — mapa (56 bytů)</title>
|
||||
<title>Byty v Praze — mapa (132 bytů)</title>
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
<style>
|
||||
@@ -81,11 +81,11 @@
|
||||
<button class="panel-close-btn" id="panel-close-btn" onclick="togglePanel()">✕</button>
|
||||
<h2>Byty v Praze</h2>
|
||||
<div class="stats">
|
||||
<div>Celkem: <b id="visible-count">56</b> bytů</div>
|
||||
<div>Cena: 3 641 309 Kč — 13 994 000 Kč</div>
|
||||
<div>Průměr: 11 279 033 Kč</div>
|
||||
<div>Celkem: <b id="visible-count">132</b> bytů</div>
|
||||
<div>Cena: 3 799 037 Kč — 13 994 000 Kč</div>
|
||||
<div>Průměr: 11 070 694 Kč</div>
|
||||
</div>
|
||||
<div style="margin-bottom:4px;font-size:12px;color:#555;font-weight:600;">Cena / m²:</div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#1565C0;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>< 110 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#42A5F5;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>110 – 130 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#66BB6A;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>130 – 150 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#EF6C00;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>150 – 165 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#C62828;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>> 165 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#9E9E9E;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>cena/plocha neuvedena</span></div><div style="display:flex;align-items:center;gap:6px;margin:6px 0 0 0;padding-top:6px;border-top:1px solid #eee;"><span style="width:18px;height:18px;border-radius:50%;background:#66BB6A;display:inline-block;box-shadow:0 1px 4px rgba(0,0,0,0.35);flex-shrink:0;"></span><span>Nové (z dnešního scrapu) — větší</span></div><div style="margin-top:8px;padding-top:6px;border-top:1px solid #eee;font-size:12px;color:#666;">3+kk (42), 3+1 (5), 4+kk (2)</div><div style="display:flex;align-items:center;gap:6px;margin:8px 0 3px 0;padding-top:6px;border-top:1px solid #eee;"><svg width="14" height="14" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 C2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" fill="#D32F2F"/></svg><span>PSN / CityHome (3)</span></div>
|
||||
<div style="margin-bottom:4px;font-size:12px;color:#555;font-weight:600;">Cena / m²:</div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#1565C0;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>< 110 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#42A5F5;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>110 – 130 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#66BB6A;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>130 – 150 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#EF6C00;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>150 – 165 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#C62828;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>> 165 000 Kč/m²</span></div><div style="display:flex;align-items:center;gap:6px;margin:2px 0;"><span style="width:14px;height:14px;border-radius:50%;background:#9E9E9E;display:inline-block;border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.3);flex-shrink:0;"></span><span>cena/plocha neuvedena</span></div><div style="display:flex;align-items:center;gap:6px;margin:6px 0 0 0;padding-top:6px;border-top:1px solid #eee;"><span style="width:18px;height:18px;border-radius:50%;background:#66BB6A;display:inline-block;box-shadow:0 1px 4px rgba(0,0,0,0.35);flex-shrink:0;"></span><span>Nové (z dnešního scrapu) — větší</span></div><div style="margin-top:8px;padding-top:6px;border-top:1px solid #eee;font-size:12px;color:#666;">3+kk (57), 3+1 (32), 4+kk (34), 4+1 (5), 5+kk (1)</div><div style="display:flex;align-items:center;gap:6px;margin:8px 0 3px 0;padding-top:6px;border-top:1px solid #eee;"><svg width="14" height="14" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 C2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" fill="#D32F2F"/></svg><span>PSN / CityHome (3)</span></div>
|
||||
<div class="filter-section">
|
||||
<b>Filtry:</b>
|
||||
<div id="floor-filter">
|
||||
@@ -118,7 +118,7 @@
|
||||
Skrýt zamítnuté
|
||||
</label>
|
||||
</div>
|
||||
<div class="status-link"><a href="status.html">Scraper status</a></div>
|
||||
<div class="status-link"><a href="/scrapers-status">Scraper status</a></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -213,59 +213,135 @@ function addHeartMarker(lat, lon, color, popup, hashId) {
|
||||
addHeartMarker(50.0729, 14.4767, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="8941"><b style="font-size:14px;">13 994 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#D32F2F;color:white;padding:1px 6px;border-radius:3px;">PSN</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 102.7 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Litevská 1174/8, Praha 10</b><br>Stavba: neuvedeno<br>Vlastnictví: osobní<br><br><a href="https://psn.cz/prodej/ubytovaci-jednotka-3-kk-litevska-praha-10-vrsovice-lit4219" target="_blank" style="color:#D32F2F;text-decoration:none;font-weight:bold;">→ Otevřít na PSN</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '8941');
|
||||
addHeartMarker(50.0652858, 14.3931318, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="cityhome_na-vaclavce-34_Byt A2.3"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#D32F2F;color:white;padding:1px 6px;border-radius:3px;">CityHome</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 99.1 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Na Václavce 34, Praha 5</b><br>Stavba: Cihlová<br>Vlastnictví: neuvedeno<br><br><a href="https://www.city-home.cz/projekty/na-vaclavce-34/nabidka-nemovitosti/byt-a23" target="_blank" style="color:#D32F2F;text-decoration:none;font-weight:bold;">→ Otevřít na CityHome</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', 'cityhome_na-vaclavce-34_Byt A2.3');
|
||||
addHeartMarker(50.0652858, 14.3931318, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="cityhome_na-vaclavce-34_Byt A3.2"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#D32F2F;color:white;padding:1px 6px;border-radius:3px;">CityHome</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 95.6 m² | 3. NP</span><br><br><b>Na Václavce 34, Praha 5</b><br>Stavba: Cihlová<br>Vlastnictví: neuvedeno<br><br><a href="https://www.city-home.cz/projekty/na-vaclavce-34/nabidka-nemovitosti/byt-a32" target="_blank" style="color:#D32F2F;text-decoration:none;font-weight:bold;">→ Otevřít na CityHome</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', 'cityhome_na-vaclavce-34_Byt A3.2');
|
||||
addNewMarker(50.069641, 14.470198, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="938877772"><b style="font-size:14px;">12 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 99 m² | 3. NP</span><br><br><b>Čeljabinská, Praha 10 - Vršovice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vrsovice-celjabinska/938877772" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '938877772');
|
||||
addNewMarker(50.039608, 14.316702, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2036855628"><b style="font-size:14px;">10 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 83 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Na Výrovně, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-na-vyrovne/2036855628" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2036855628');
|
||||
addNewMarker(50.084381, 14.372257, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2148991820"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 72 m² | 4. NP</span><br><br><b>Pod Marjánkou, Praha 6 - Břevnov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-brevnov-pod-marjankou/2148991820" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2148991820');
|
||||
addMarker(50.057732, 14.561535, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="65700684"><b style="font-size:14px;">12 391 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 77 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Kutnohorská, Praha 10 - Dolní Měcholupy</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-dolni-mecholupy-kutnohorska/65700684" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '65700684');
|
||||
addMarker(50.072536, 14.476557, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3704697676"><b style="font-size:14px;">8 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 72 m² | 5. NP</span><br><br><b>Litevská, Praha 10 - Vršovice</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vrsovice-litevska/3704697676" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3704697676');
|
||||
addMarker(50.124489, 14.453209, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="961934156"><b style="font-size:14px;">13 220 749 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 71 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Vršní, Praha 8 - Kobylisy</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-kobylisy-vrsni/961934156" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '961934156');
|
||||
addNewMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2212697420"><b style="font-size:14px;">11 597 281 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 72 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/2212697420" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2212697420');
|
||||
addMarker(50.028469, 14.360102, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2017486156"><b style="font-size:14px;">4 991 300 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 70 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Gollové, Praha 5 - Hlubočepy</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hlubocepy-gollove/2017486156" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2017486156');
|
||||
addMarker(50.047672, 14.55894, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2550690636"><b style="font-size:14px;">10 850 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 76 m² | 4. NP</span><br><br><b>Boloňská, Praha - Horní Měcholupy</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-horni-mecholupy-bolonska/2550690636" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2550690636');
|
||||
addMarker(50.032154, 14.378248, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="752694092"><b style="font-size:14px;">11 832 300 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 72 m² | 7. NP</span><br><br><b>Kabátové, Praha - Hlubočepy</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hlubocepy-kabatove/752694092" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '752694092');
|
||||
addMarker(50.032154, 14.378248, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2681025356"><b style="font-size:14px;">11 530 100 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 75 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Kabátové, Praha - Hlubočepy</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hlubocepy-kabatove/2681025356" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2681025356');
|
||||
addMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="832578892"><b style="font-size:14px;">12 509 412 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 77 m² | 3. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/832578892" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '832578892');
|
||||
addMarker(50.130577, 14.549412, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3956917068"><b style="font-size:14px;">11 685 992 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 72 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Mladoboleslavská, Praha 9 - Vinoř</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vinor-mladoboleslavska/3956917068" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3956917068');
|
||||
addMarker(50.076836, 14.469539, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1115820876"><b style="font-size:14px;">12 360 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 71 m² | 3. NP</span><br><br><b>V Horní Stromce, Praha 3 - Vinohrady</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vinohrady-v-horni-stromce/1115820876" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1115820876');
|
||||
addMarker(50.106956, 14.510207, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1137623884"><b style="font-size:14px;">12 318 349 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 71 m² | 4. NP</span><br><br><b>Praha 9</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-praha-9-/1137623884" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1137623884');
|
||||
addMarker(50.157696, 14.519159, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1726158156"><b style="font-size:14px;">11 917 901 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 72 m² | 3. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/1726158156" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1726158156');
|
||||
addMarker(50.059868, 14.286838, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="175792972"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 71 m² | 3. NP</span><br><br><b>Vřesovická, Praha 5 - Zličín</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-zlicin-vresovicka/175792972" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '175792972');
|
||||
addNewMarker(50.057873, 14.283536, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3985498956"><b style="font-size:14px;">11 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 75 m² | 7. NP</span><br><br><b>Sazovická, Praha - Zličín</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-zlicin-sazovicka/3985498956" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3985498956');
|
||||
addNewMarker(50.109985, 14.527657, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="399971148"><b style="font-size:14px;">11 995 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 72 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Kolbenova, Praha 9 - Hloubětín</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hloubetin-kolbenova/399971148" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '399971148');
|
||||
addNewMarker(50.044048, 14.516497, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1390900044"><b style="font-size:14px;">12 800 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 82 m² | 6. NP</span><br><br><b>Bratislavská, Praha 10 - Hostivař</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hostivar-bratislavska/1390900044" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1390900044');
|
||||
addMarker(50.069641, 14.470198, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="938877772"><b style="font-size:14px;">12 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 99 m² | 3. NP</span><br><br><b>Čeljabinská, Praha 10 - Vršovice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vrsovice-celjabinska/938877772" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '938877772');
|
||||
addMarker(50.039608, 14.316702, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2036855628"><b style="font-size:14px;">10 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 83 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Na Výrovně, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-na-vyrovne/2036855628" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2036855628');
|
||||
addMarker(50.084381, 14.372257, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2148991820"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 72 m² | 4. NP</span><br><br><b>Pod Marjánkou, Praha 6 - Břevnov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-brevnov-pod-marjankou/2148991820" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2148991820');
|
||||
addMarker(50.060715, 14.401836, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3226313292"><b style="font-size:14px;">13 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 83 m² | 4. NP</span><br><br><b>Na Neklance, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-smichov-na-neklance/3226313292" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3226313292');
|
||||
addNewMarker(50.039043, 14.314881, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="475530060"><b style="font-size:14px;">12 250 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 83 m² | 3. NP</span><br><br><b>Radouňova, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-radounova/475530060" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '475530060');
|
||||
addMarker(50.039043, 14.314881, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="475530060"><b style="font-size:14px;">12 250 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 83 m² | 3. NP</span><br><br><b>Radouňova, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-radounova/475530060" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '475530060');
|
||||
addNewMarker(50.100174, 14.492079, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2303799884"><b style="font-size:14px;">12 860 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 88 m² | 3. NP</span><br><br><b>Spojovací, Praha 9 - Vysočany</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vysocany-spojovaci/2303799884" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2303799884');
|
||||
addNewMarker(50.125145, 14.507703, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3493290828"><b style="font-size:14px;">11 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 83 m² | 4. NP</span><br><br><b>Kytlická, Praha 9 - Prosek</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-prosek-kytlicka/3493290828" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3493290828');
|
||||
addNewMarker(50.101852, 14.486118, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="151528268"><b style="font-size:14px;">11 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 86 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Spojovací, Praha</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha--spojovaci/151528268" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '151528268');
|
||||
addNewMarker(50.071224, 14.407872, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1837527884"><b style="font-size:14px;">12 790 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 73 m² | 3. NP</span><br><br><b>Vrázova, Praha - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-smichov-vrazova/1837527884" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1837527884');
|
||||
addMarker(50.071224, 14.407872, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1837527884"><b style="font-size:14px;">12 790 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 73 m² | 3. NP</span><br><br><b>Vrázova, Praha - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-smichov-vrazova/1837527884" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1837527884');
|
||||
addNewMarker(50.03138, 14.391757, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3330433868"><b style="font-size:14px;">11 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 93 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Kříženeckého náměstí, Praha 5 - Hlubočepy</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hlubocepy-krizeneckeho-namesti/3330433868" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3330433868');
|
||||
addMarker(50.122192, 14.57646, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2053579340"><b style="font-size:14px;">11 858 981 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 76 m² | 3. NP</span><br><br><b>Za Novákovou zahradou, Praha - Satalice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-satalice-za-novakovou-zahradou/2053579340" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2053579340');
|
||||
addNewMarker(50.084606, 14.482681, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3651539788"><b style="font-size:14px;">13 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 69 m² | 12. NP</span><br><br><b>Zvěřinova, Praha 3 - Strašnice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-strasnice-zverinova/3651539788" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3651539788');
|
||||
addMarker(50.084606, 14.482681, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3651539788"><b style="font-size:14px;">13 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 69 m² | 12. NP</span><br><br><b>Zvěřinova, Praha 3 - Strašnice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-strasnice-zverinova/3651539788" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3651539788');
|
||||
addNewMarker(50.086601, 14.5636, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4005061452"><b style="font-size:14px;">12 875 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 101 m² | 5. NP</span><br><br><b>U Hostavického potoka, Praha 9 - Hostavice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-hostavice-u-hostavickeho-potoka/4005061452" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4005061452');
|
||||
addNewMarker(50.004192, 14.355805, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="589460300"><b style="font-size:14px;">13 126 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 75 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Ke Slivenci, Praha - Lochkov</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-lochkov-ke-slivenci/589460300" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '589460300');
|
||||
addNewMarker(50.072403, 14.410302, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2926625612"><b style="font-size:14px;">13 499 900 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 85 m² | 3. NP</span><br><br><b>Hořejší nábřeží, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-smichov-horejsi-nabrezi/2926625612" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2926625612');
|
||||
addNewMarker(50.082985, 14.311815, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3672994636"><b style="font-size:14px;">12 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 81 m² | 3. NP</span><br><br><b>Stochovská, Praha 6 - Ruzyně</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-ruzyne-stochovska/3672994636" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3672994636');
|
||||
addNewMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4070581580"><b style="font-size:14px;">12 207 113 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 77 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/4070581580" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4070581580');
|
||||
addNewMarker(50.141739, 14.522086, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2772919116"><b style="font-size:14px;">13 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 81 m² | 5. NP</span><br><br><b>Hlučkova, Praha 9 - Letňany</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-letnany-hluckova/2772919116" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2772919116');
|
||||
addNewMarker(50.13076, 14.423249, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2242032460"><b style="font-size:14px;">12 762 764 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 98 m² | 5. NP</span><br><br><b>Lodžská, Praha 8 - Bohnice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-bohnice-lodzska/2242032460" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2242032460');
|
||||
addNewMarker(50.036095, 14.48035, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3617202764"><b style="font-size:14px;">12 959 520 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 79 m² | 3. NP</span><br><br><b>Komárkova, Praha 4 - Chodov</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-chodov-komarkova/3617202764" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3617202764');
|
||||
addNewMarker(50.082317, 14.450463, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2860663372"><b style="font-size:14px;">12 463 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 78 m² | 4. NP</span><br><br><b>Kubelíkova, Praha</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha--kubelikova/2860663372" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2860663372');
|
||||
addNewMarker(50.157696, 14.519159, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="158065228"><b style="font-size:14px;">10 947 779 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 73 m² | 4. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/158065228" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '158065228');
|
||||
addNewMarker(50.065208, 14.450711, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4227625804"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 81 m² | 5. NP</span><br><br><b>Ukrajinská, Praha 10 - Vršovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vrsovice-ukrajinska/4227625804" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4227625804');
|
||||
addNewMarker(50.106956, 14.510207, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1313456972"><b style="font-size:14px;">3 641 309 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 87 m² | 5. NP</span><br><br><b>Praha 9</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-praha-9-/1313456972" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1313456972');
|
||||
addNewMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1671439692"><b style="font-size:14px;">12 556 524 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 77 m² | 3. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-cakovice-marie-podvalove/1671439692" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1671439692');
|
||||
addNewMarker(50.04636, 14.310556, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="576226124"><b style="font-size:14px;">12 026 912 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 71 m² | 3. NP</span><br><br><b>Hábova, Praha 5 - Stodůlky</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-habova/576226124" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '576226124');
|
||||
addNewMarker(50.04636, 14.310556, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="473465676"><b style="font-size:14px;">12 349 349 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 73 m² | 3. NP</span><br><br><b>Hábova, Praha 5 - Stodůlky</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-stodulky-habova/473465676" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '473465676');
|
||||
addNewMarker(50.074284, 14.405826, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2185458508"><b style="font-size:14px;">11 978 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 76 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Matoušova, Praha - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-smichov-matousova/2185458508" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2185458508');
|
||||
addNewMarker(50.053101, 14.507191, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3988325196"><b style="font-size:14px;">13 190 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 83 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Práčská, Praha</b><br>Stavba: Kamenná<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha--pracska/3988325196" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3988325196');
|
||||
addNewMarker(50.13237, 14.53639, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3019572044"><b style="font-size:14px;">10 790 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 76 m² | 3. NP</span><br><br><b>Plzákova, Praha - Kbely</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-kbely-plzakova/3019572044" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3019572044');
|
||||
addNewMarker(50.072536, 14.476557, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3704697676"><b style="font-size:14px;">8 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 72 m² | 5. NP</span><br><br><b>Litevská, Praha 10 - Vršovice</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-vrsovice-litevska/3704697676" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3704697676');
|
||||
addNewMarker(50.106956, 14.510207, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1137623884"><b style="font-size:14px;">12 318 349 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 71 m² | 4. NP</span><br><br><b>Praha 9</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-praha-9-/1137623884" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1137623884');
|
||||
addMarker(50.004192, 14.355805, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="589460300"><b style="font-size:14px;">13 126 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+kk | 69 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Ke Slivenci, Praha - Lochkov</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+kk/praha-lochkov-ke-slivenci/589460300" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '589460300');
|
||||
addMarker(49.968777, 14.394235, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3475837772"><b style="font-size:14px;">9 400 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 77 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Žitavského, Praha - Zbraslav</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zbraslav-zitavskeho/3475837772" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3475837772');
|
||||
addNewMarker(50.054306, 14.441881, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="77820748"><b style="font-size:14px;">9 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 80 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>U Svépomoci, Praha - Nusle</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-nusle-u-svepomoci/77820748" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '77820748');
|
||||
addMarker(50.098339, 14.447381, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2609607500"><b style="font-size:14px;">13 300 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 84 m² | 3. NP</span><br><br><b>Bubenské nábřeží, Praha 7 - Holešovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-holesovice-bubenske-nabrezi/2609607500" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2609607500');
|
||||
addNewMarker(50.065289, 14.393119, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1071539020"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 99 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Na Václavce, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-smichov-na-vaclavce/1071539020" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1071539020');
|
||||
addMarker(49.964233, 14.395434, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2792387404"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 94 m² | 3. NP</span><br><br><b>Spojařů, Praha 5 - Zbraslav</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zbraslav-spojaru/2792387404" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2792387404');
|
||||
addNewMarker(50.065617, 14.428337, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="793797452"><b style="font-size:14px;">9 290 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 97 m² | 5. NP</span><br><br><b>Oldřichova, Praha 2 - Nusle</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-nusle-oldrichova/793797452" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '793797452');
|
||||
addMarker(50.070713, 14.37893, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2119304012"><b style="font-size:14px;">8 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 70 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Plzeňská, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-smichov-plzenska/2119304012" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2119304012');
|
||||
addNewMarker(50.037449, 14.413369, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3469083468"><b style="font-size:14px;">11 099 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 97 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Školní, Praha 4 - Braník</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-branik-skolni/3469083468" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3469083468');
|
||||
addMarker(50.070919, 14.482954, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1180791628"><b style="font-size:14px;">8 880 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 70 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>V předpolí, Praha 10 - Strašnice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-strasnice-v-predpoli/1180791628" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1180791628');
|
||||
addNewMarker(50.065289, 14.393119, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="266232652"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 96 m² | 3. NP</span><br><br><b>Na Václavce, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-smichov-na-vaclavce/266232652" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '266232652');
|
||||
addNewMarker(50.135719, 14.477155, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1547395660"><b style="font-size:14px;">10 750 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 85 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Březová, Praha 8 - Kobylisy</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-kobylisy-brezova/1547395660" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1547395660');
|
||||
addNewMarker(50.089592, 14.470283, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1954308940"><b style="font-size:14px;">13 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 91 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Biskupcova, Praha 3 - Žižkov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zizkov-biskupcova/1954308940" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1954308940');
|
||||
addMarker(50.103786, 14.476581, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1556706124"><b style="font-size:14px;">13 385 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 84 m² | 3. NP</span><br><br><b>Novákových, Praha - Libeň</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-liben-novakovych/1556706124" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1556706124');
|
||||
addNewMarker(50.05027, 14.338411, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="401630028"><b style="font-size:14px;">11 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 81 m² | 7. NP</span><br><br><b>Volutová, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-stodulky-volutova/401630028" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '401630028');
|
||||
addMarker(50.047489, 14.490741, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="977601356"><b style="font-size:14px;">8 350 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 71 m² | 6. NP</span><br><br><b>Hlavní, Praha 4 - Záběhlice</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zabehlice-hlavni/977601356" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '977601356');
|
||||
addMarker(50.055012, 14.437956, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3806466892"><b style="font-size:14px;">13 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 96 m² | 4. NP</span><br><br><b>5. května, Praha 4 - Nusle</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-nusle-5--kvetna/3806466892" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3806466892');
|
||||
addNewMarker(50.110298, 14.47299, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3753907020"><b style="font-size:14px;">11 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 90 m² | 5. NP</span><br><br><b>Horovo náměstí, Praha 8 - Libeň</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-liben-horovo-namesti/3753907020" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3753907020');
|
||||
addMarker(50.042667, 14.457544, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3224830796"><b style="font-size:14px;">11 900 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 78 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Budějovická, Praha - Praha 4</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-praha-4-budejovicka/3224830796" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3224830796');
|
||||
addMarker(50.07748, 14.505886, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2518025036"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 95 m² | 4. NP</span><br><br><b>Černokostelecká, Praha 10 - Strašnice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-strasnice-cernokostelecka/2518025036" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2518025036');
|
||||
addNewMarker(50.041092, 14.457349, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2023191372"><b style="font-size:14px;">12 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 84 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Valtínovská, Praha 4 - Krč</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-krc-valtinovska/2023191372" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2023191372');
|
||||
addMarker(50.089504, 14.463739, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3972887372"><b style="font-size:14px;">11 349 087 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 84 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Hartigova, Praha 3 - Žižkov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zizkov-hartigova/3972887372" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3972887372');
|
||||
addMarker(50.086834, 14.445434, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4058571596"><b style="font-size:14px;">13 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">3+1 | 121 m² | 5. NP</span><br><br><b>Husitská, Praha 3 - Žižkov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/3+1/praha-zizkov-husitska/4058571596" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4058571596');
|
||||
addMarker(50.106956, 14.510207, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2591810124"><b style="font-size:14px;">12 618 295 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 77 m² | 3. NP</span><br><br><b>Praha 9</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-praha-9-/2591810124" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2591810124');
|
||||
addMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4041016140"><b style="font-size:14px;">13 300 500 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 88 m² | 5. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-cakovice-marie-podvalove/4041016140" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4041016140');
|
||||
addMarker(50.157696, 14.519159, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="330105676"><b style="font-size:14px;">12 752 900 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 88 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-cakovice-marie-podvalove/330105676" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '330105676');
|
||||
addMarker(50.067547, 14.554193, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="971801420"><b style="font-size:14px;">5 033 600 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 113 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Honzíkova, Praha 10 - Dolní Měcholupy</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-dolni-mecholupy-honzikova/971801420" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '971801420');
|
||||
addNewMarker(50.114307, 14.508595, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1931699020"><b style="font-size:14px;">12 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 113 m² | 4. NP</span><br><br><b>Pod Krocínkou, Praha 9 - Vysočany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-vysocany-pod-krocinkou/1931699020" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1931699020');
|
||||
addMarker(50.157696, 14.519159, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3681342028"><b style="font-size:14px;">12 188 188 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 76 m² | 4. NP</span><br><br><b>Marie Podvalové, Praha - Čakovice</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-cakovice-marie-podvalove/3681342028" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3681342028');
|
||||
addNewMarker(50.057995, 14.468289, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2712802124"><b style="font-size:14px;">13 249 900 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 94 m² | 8. NP</span><br><br><b>V Dolině, Praha 10 - Michle</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-michle-v-doline/2712802124" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2712802124');
|
||||
addMarker(50.073978, 14.428468, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3344900940"><b style="font-size:14px;">12 980 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 108 m² | 5. NP</span><br><br><b>Na Bojišti, Praha 2 - Nové Město</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-nove-mesto-na-bojisti/3344900940" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3344900940');
|
||||
addMarker(50.03017, 14.594007, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="586400588"><b style="font-size:14px;">10 363 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 75 m² | 4. NP</span><br><br><b>Karla Guta, Praha 10 - Uhříněves</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-uhrineves-karla-guta/586400588" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '586400588');
|
||||
addMarker(50.141624, 14.514146, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1717773132"><b style="font-size:14px;">12 690 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 84 m² | 3. NP</span><br><br><b>Letovská, Praha 9 - Letňany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-letnany-letovska/1717773132" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1717773132');
|
||||
addMarker(50.154964, 14.538545, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="4059067212"><b style="font-size:14px;">12 026 070 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 79 m² | 3. NP</span><br><br><b>Polabská, Praha 9 - Miškovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-miskovice-polabska/4059067212" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '4059067212');
|
||||
addMarker(50.154964, 14.538545, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2716889932"><b style="font-size:14px;">12 281 850 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 79 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Polabská, Praha 9 - Miškovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-miskovice-polabska/2716889932" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2716889932');
|
||||
addMarker(50.154964, 14.538545, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1374712652"><b style="font-size:14px;">12 054 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 80 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Polabská, Praha 9 - Miškovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-miskovice-polabska/1374712652" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1374712652');
|
||||
addMarker(50.154964, 14.538545, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3195237196"><b style="font-size:14px;">11 912 880 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 79 m² | 3. NP</span><br><br><b>Polabská, Praha 9 - Miškovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-miskovice-polabska/3195237196" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3195237196');
|
||||
addMarker(50.140385, 14.519495, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1430709068"><b style="font-size:14px;">12 450 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 80 m² | 6. NP</span><br><br><b>Škrábkových, Praha 9 - Letňany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-letnany-skrabkovych/1430709068" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1430709068');
|
||||
addMarker(50.08839, 14.463692, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2825986892"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 77 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Domažlická, Praha 3 - Žižkov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-zizkov-domazlicka/2825986892" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2825986892');
|
||||
addMarker(50.032063, 14.588518, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3116368716"><b style="font-size:14px;">11 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 78 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Sušilova, Praha 10 - Uhříněves</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-uhrineves-susilova/3116368716" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3116368716');
|
||||
addMarker(50.030186, 14.361911, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3106485068"><b style="font-size:14px;">4 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 95 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Gollové, Praha - Hlubočepy</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-hlubocepy-gollove/3106485068" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3106485068');
|
||||
addNewMarker(50.047138, 14.486127, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1100178252"><b style="font-size:14px;">7 985 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 78 m² | 8. NP</span><br><br><b>Hlavní, Praha 4 - Záběhlice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-zabehlice-hlavni/1100178252" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1100178252');
|
||||
addMarker(50.037685, 14.591111, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="222794572"><b style="font-size:14px;">13 435 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 76 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Bečovská, Praha 10 - Uhříněves</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-uhrineves-becovska/222794572" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '222794572');
|
||||
addMarker(50.130093, 14.535296, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2301477708"><b style="font-size:14px;">4 595 524 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 97 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Sedlářova, Praha 9 - Kbely</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-kbely-sedlarova/2301477708" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2301477708');
|
||||
addMarker(50.069508, 14.389555, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1327956812"><b style="font-size:14px;">11 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 83 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Fráni Šrámka, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-smichov-frani-sramka/1327956812" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1327956812');
|
||||
addMarker(50.102959, 14.478184, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="230212172"><b style="font-size:14px;">12 650 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 79 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Sokolovská, Praha 8 - Libeň</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-liben-sokolovska/230212172" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '230212172');
|
||||
addNewMarker(50.047554, 14.300726, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2156028748"><b style="font-size:14px;">4 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 105 m² | 5. NP</span><br><br><b>Thomasova, Praha 5 - Třebonice</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-trebonice-thomasova/2156028748" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2156028748');
|
||||
addMarker(50.0299, 14.36202, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="954037068"><b style="font-size:14px;">3 999 999 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 104 m² | 3. NP</span><br><br><b>náměstí Olgy Scheinpflugové, Praha 5 - Hlubočepy</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-hlubocepy-namesti-olgy-scheinpflugove/954037068" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '954037068');
|
||||
addMarker(50.035149, 14.505833, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3472032588"><b style="font-size:14px;">4 486 462 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 96 m² | 7. NP</span><br><br><b>Praha 4 - Chodov</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-chodov-/3472032588" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3472032588');
|
||||
addMarker(50.067547, 14.554193, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1797391180"><b style="font-size:14px;">3 799 037 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 125 m² | 3. NP</span><br><br><b>Honzíkova, Praha 10 - Dolní Měcholupy</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-dolni-mecholupy-honzikova/1797391180" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1797391180');
|
||||
addMarker(50.069912, 14.431077, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1099359052"><b style="font-size:14px;">12 360 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 116 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Legerova, Praha 2 - Vinohrady</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-vinohrady-legerova/1099359052" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1099359052');
|
||||
addMarker(50.0439, 14.515306, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="242774860"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 94 m² | 3. NP</span><br><br><b>Bratislavská, Praha - Hostivař</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-hostivar-bratislavska/242774860" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '242774860');
|
||||
addMarker(50.026546, 14.416888, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1058415436"><b style="font-size:14px;">13 299 328 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 81 m² | 4. NP</span><br><br><b>Údolní, Praha 4 - Braník</b><br>Stavba: Skeletová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-branik-udolni/1058415436" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1058415436');
|
||||
addMarker(50.030125, 14.59409, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2868101964"><b style="font-size:14px;">11 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 84 m² | 5. NP</span><br><br><b>Karla Guta, Praha 10 - Uhříněves</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-uhrineves-karla-guta/2868101964" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2868101964');
|
||||
addNewMarker(50.067547, 14.554193, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="3382600524"><b style="font-size:14px;">4 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 126 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Honzíkova, Praha 10 - Dolní Měcholupy</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-dolni-mecholupy-honzikova/3382600524" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '3382600524');
|
||||
addMarker(50.028706, 14.361368, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="772551244"><b style="font-size:14px;">4 982 498 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+kk | 110 m² | 6. NP</span><br><br><b>Vítové, Praha 5 - Hlubočepy</b><br>Stavba: Skeletová<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+kk/praha-hlubocepy-vitove/772551244" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '772551244');
|
||||
addMarker(50.141563, 14.576679, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1765593932"><b style="font-size:14px;">12 700 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">4+1 | 90 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Semtínská, Praha - Vinoř</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+1/praha-vinor-semtinska/1765593932" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1765593932');
|
||||
addNewMarker(50.048347, 14.484313, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2841862988"><b style="font-size:14px;">8 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+1 | 78 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Hrusická, Praha 4 - Záběhlice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+1/praha-zabehlice-hrusicka/2841862988" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2841862988');
|
||||
addNewMarker(50.090046, 14.356453, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1930650444"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+1 | 85 m² | 3. NP</span><br><br><b>Brixiho, Praha - Břevnov</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+1/praha-brevnov-brixiho/1930650444" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1930650444');
|
||||
addNewMarker(50.107712, 14.620706, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="1436115788"><b style="font-size:14px;">8 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+1 | 79 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Markupova, Praha 9 - Horní Počernice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/4+1/praha-horni-pocernice-markupova/1436115788" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '1436115788');
|
||||
addMarker(50.035149, 14.505833, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="2676609868"><b style="font-size:14px;">5 189 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#1976D2;color:white;padding:1px 6px;border-radius:3px;">Sreality</span><br><span style="color:#666;">5+kk | 113 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Praha 4 - Chodov</b><br>Stavba: Smíšená<br>Vlastnictví: Družstevní<br><br><a href="https://www.sreality.cz/detail/prodej/byt/5+kk/praha-chodov-/2676609868" target="_blank" style="color:#1976D2;text-decoration:none;font-weight:bold;">→ Otevřít na Sreality</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '2676609868');
|
||||
addNewMarker(50.142303781599, 14.522362316941, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24515884"><b style="font-size:14px;">13 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 81 m² | 5. NP</span><br><br><b>Hlučkova 869, Praha</b><br>Stavba: OTHER<br>Vlastnictví: Osobní<br><br><a href="https://www.realingo.cz/prodej/byt-3+kk-hluckova-869-praha/24515884" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24515884');
|
||||
addNewMarker(50.106598, 14.506245, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24515669"><b style="font-size:14px;">8 487 297 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 190 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-190-00/24515669" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24515669');
|
||||
addNewMarker(50.087602, 14.470882, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24515653"><b style="font-size:14px;">8 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 130 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-130-00/24515653" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24515653');
|
||||
addNewMarker(50.045786, 14.470711, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24515514"><b style="font-size:14px;">7 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 141 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-141-00/24515514" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24515514');
|
||||
addNewMarker(50.076449, 14.435263, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24514922"><b style="font-size:14px;">12 132 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 120 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-2+kk-slezska-praha/24514922" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24514922');
|
||||
addNewMarker(50.074273, 14.493284, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24514813"><b style="font-size:14px;">8 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 100 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-100-00/24514813" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24514813');
|
||||
addNewMarker(50.010056, 14.353809, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24514769"><b style="font-size:14px;">6 980 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 154 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-154-00/24514769" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24514769');
|
||||
addNewMarker(50.030571, 14.308491, '#9E9E9E', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="24514708"><b style="font-size:14px;">5 362 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#00897B;color:white;padding:1px 6px;border-radius:3px;">Realingo</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">Atypický | neuvedeno | neuvedeno</span><br><br><b>Praha, 155 00</b><br>Stavba: neuvedeno<br>Vlastnictví: neuvedeno<br><br><a href="https://www.realingo.cz/prodej/byt-ostatni-byty-praha-155-00/24514708" target="_blank" style="color:#00897B;text-decoration:none;font-weight:bold;">→ Otevřít na Realingo</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '24514708');
|
||||
addNewMarker(50.0723994, 14.4102987, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="957149"><b style="font-size:14px;">13 499 900 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 85 m² | 3. NP</span><br><br><b>Hořejší nábřeží, Praha - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/957149-nabidka-prodej-bytu-horejsi-nabrezi-hlavni-mesto-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '957149');
|
||||
addNewMarker(50.0531887, 14.5100177, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="993725"><b style="font-size:14px;">13 190 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 83 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Práčská, Praha - Záběhlice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/993725-nabidka-prodej-bytu-pracska-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '993725');
|
||||
addNewMarker(50.1034183, 14.4549189, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="972686"><b style="font-size:14px;">11 950 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 80 m² | 6. NP</span><br><br><b>Dělnická, Praha - Holešovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/972686-nabidka-prodej-bytu-delnicka-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '972686');
|
||||
addNewMarker(50.0951045, 14.5454237, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="955010"><b style="font-size:14px;">11 900 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 70 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Břeclavská, Praha - Kyje</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/955010-nabidka-prodej-bytu-breclavska-hlavni-mesto-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '955010');
|
||||
addMarker(50.0713284, 14.4638722, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="967142"><b style="font-size:14px;">11 648 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 78 m² | 6. NP</span><br><br><b>Na Míčánkách, Praha - Vršovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/967142-nabidka-prodej-bytu-na-micankach" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '967142');
|
||||
addMarker(50.103273, 14.4746894, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="981890"><b style="font-size:14px;">12 980 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+1 | 84 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Novákových, Praha - Libeň</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/981890-nabidka-prodej-bytu-novakovych-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '981890');
|
||||
addNewMarker(50.1113213, 14.5106858, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="991217"><b style="font-size:14px;">11 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 71 m² | 3. NP</span><br><br><b>Kolbenova, Praha - Vysočany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/991217-nabidka-prodej-bytu-kolbenova-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '991217');
|
||||
addMarker(50.0676313, 14.432498, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="868801"><b style="font-size:14px;">7 299 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 109 m² | 5. NP</span><br><br><b>Pod Karlovem, Praha - Vinohrady</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/868801-nabidka-prodej-bytu-pod-karlovem-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '868801');
|
||||
addMarker(50.0676313, 14.432498, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="868795"><b style="font-size:14px;">6 299 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 106 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Pod Karlovem, Praha - Vinohrady</b><br>Stavba: Cihlová<br>Vlastnictví: Družstevní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/868795-nabidka-prodej-bytu-pod-karlovem-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '868795');
|
||||
addNewMarker(50.0866062, 14.4586719, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="980187"><b style="font-size:14px;">12 600 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 75 m² | 7. NP</span><br><br><b>Jeseniova, Praha - Žižkov</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/980187-nabidka-prodej-bytu-jeseniova-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '980187');
|
||||
addMarker(50.0390519, 14.63862, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="990183"><b style="font-size:14px;">10 385 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 86 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Ke Tvrzi, Praha - Královice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/990183-nabidka-prodej-bytu-ke-tvrzi-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '990183');
|
||||
addMarker(50.1026043, 14.4435365, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="981278"><b style="font-size:14px;">11 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 70 m² | 3. NP</span><br><br><b>Argentinská, Praha - Holešovice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/981278-nabidka-prodej-bytu-argentinska-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '981278');
|
||||
addMarker(50.1113213, 14.5106858, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="991217"><b style="font-size:14px;">11 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 71 m² | 3. NP</span><br><br><b>Kolbenova, Praha - Vysočany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/991217-nabidka-prodej-bytu-kolbenova-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '991217');
|
||||
addMarker(50.1406487, 14.5207541, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="989817"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 88 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Miroslava Hajna, Praha - Letňany</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/989817-nabidka-prodej-bytu-miroslava-hajna-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '989817');
|
||||
addNewMarker(50.0604096, 14.4326302, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="988498"><b style="font-size:14px;">11 250 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 75 m² | 4. NP</span><br><br><b>5. května, Praha - Nusle</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/988498-nabidka-prodej-bytu-5-kvetna-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '988498');
|
||||
addMarker(50.0776726, 14.4870072, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="965526"><b style="font-size:14px;">11 890 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 77 m² | 16. NP</span><br><br><b>Vinohradská, Praha - Strašnice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/965526-nabidka-prodej-bytu-vinohradska-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '965526');
|
||||
addMarker(50.1076717, 14.5248559, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="924811"><b style="font-size:14px;">13 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 75 m² | 4. NP</span><br><br><b>Waltariho, Praha - Hloubětín</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/924811-nabidka-prodej-bytu-waltariho-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '924811');
|
||||
addMarker(50.0377128, 14.5311557, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="985859"><b style="font-size:14px;">9 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+1 | 80 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Staňkova, Praha - Háje</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/985859-nabidka-prodej-bytu-stankova-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '985859');
|
||||
addMarker(50.032081, 14.5885148, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="981178"><b style="font-size:14px;">11 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">4+kk | 86 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Sušilova, Praha - Uhříněves</b><br>Stavba: SKELET<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/981178-nabidka-prodej-bytu-susilova-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '981178');
|
||||
addMarker(50.0839509, 14.4904493, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="973216"><b style="font-size:14px;">11 357 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">4+1 | 82 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Nad Kapličkou, Praha - Strašnice</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/973216-nabidka-prodej-bytu-nad-kaplickou-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '973216');
|
||||
addMarker(50.0673284, 14.4095087, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="976276"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 75 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Svornosti, Praha - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/976276-nabidka-prodej-bytu-svornosti-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '976276');
|
||||
addMarker(50.071191, 14.5035501, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="950787"><b style="font-size:14px;">9 999 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#E91E63;color:white;padding:1px 6px;border-radius:3px;">Bezrealitky</span><br><span style="color:#666;">3+kk | 70 m² | 3. NP</span><br><br><b>Sečská, Praha - Strašnice</b><br>Stavba: Smíšená<br>Vlastnictví: Osobní<br><br><a href="https://www.bezrealitky.cz/nemovitosti-byty-domy/950787-nabidka-prodej-bytu-secska-praha" target="_blank" style="color:#E91E63;text-decoration:none;font-weight:bold;">→ Otevřít na Bezrealitky</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '950787');
|
||||
addMarker(50.0480552778, 14.3019416667, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="690c2c7b22e38ce1f50ec0c6"><b style="font-size:14px;">12 691 991 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+1 | 74 m² | 8. NP</span><br><br><b>Svitákova, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-13-svitakova/690c2c7b22e38ce1f50ec0c6/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '690c2c7b22e38ce1f50ec0c6');
|
||||
addNewMarker(50.071718, 14.389139, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="68d6a0afbe5e2703bd0b1981"><b style="font-size:14px;">12 390 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 82 m² | 4. NP</span><br><br><b>Plzeňská, Praha 5 - Košíře</b><br>Stavba: Smíšená<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-5-plzenska/68d6a0afbe5e2703bd0b1981/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '68d6a0afbe5e2703bd0b1981');
|
||||
addMarker(50.1038046289704, 14.501972362813257, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="693b5e5a00760379a401821b"><b style="font-size:14px;">11 650 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+kk | 95 m² | 9. NP</span><br><br><b>Na Harfě, Praha 9 - Vysočany</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-9-na-harfe/693b5e5a00760379a401821b/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '693b5e5a00760379a401821b');
|
||||
addNewMarker(50.125075834, 14.506951946, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699ec5d6fc3e303ef401dc61"><b style="font-size:14px;">9 590 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 79 m² | 4. NP</span><br><br><b>Kytlická, Praha 9 - Prosek</b><br>Stavba: 1980<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-9-kytlicka/699ec5d6fc3e303ef401dc61/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699ec5d6fc3e303ef401dc61');
|
||||
addMarker(50.0480552778, 14.3019416667, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="690c2c6fd1ac535eaa087b46"><b style="font-size:14px;">12 792 564 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+1 | 71 m² | 8. NP</span><br><br><b>Svitákova, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-13-svitakova/690c2c6fd1ac535eaa087b46/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '690c2c6fd1ac535eaa087b46');
|
||||
addMarker(50.070544, 14.358712, '#C62828', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="696a1e58272f95dfab0dc215"><b style="font-size:14px;">13 493 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+kk | 70 m² | 6. NP</span><br><br><b>Leitzova, Praha 5 - Košíře</b><br>Stavba: Smíšená<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-5-leitzova/696a1e58272f95dfab0dc215/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '696a1e58272f95dfab0dc215');
|
||||
addMarker(50.04195215, 14.49621258, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="67ab29a674692cb029054604"><b style="font-size:14px;">11 250 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+kk | 69 m² | 5. NP</span><br><br><b>Blažimská, Praha 4 - Chodov</b><br>Stavba: Smíšená<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-11-blazimska/67ab29a674692cb029054604/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '67ab29a674692cb029054604');
|
||||
addNewMarker(50.047399302552684, 14.298441451701592, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699efac76e8dae7baf00d765"><b style="font-size:14px;">4 950 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 87 m² | 5. NP</span><br><br><b>Thomasova, Praha 5 - Třebonice</b><br>Stavba: Cihlová<br>Vlastnictví: družstevní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-thomasova/699efac76e8dae7baf00d765/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699efac76e8dae7baf00d765');
|
||||
addNewMarker(50.1040011703, 14.4772190102, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699eff6cc4a497f6e10bac8f"><b style="font-size:14px;">11 500 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 81 m² | 5. NP</span><br><br><b>Novákových, Praha 8 - Libeň</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-8-novakovych/699eff6cc4a497f6e10bac8f/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699eff6cc4a497f6e10bac8f');
|
||||
addNewMarker(50.03467693, 14.38556713, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699ef6ca3bd2d3b1b709c85a"><b style="font-size:14px;">11 817 366 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 72 m² | 7. NP</span><br><br><b>Silurská, Praha 5 - Hlubočepy</b><br>Stavba: Smíšená<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-5-silurska/699ef6ca3bd2d3b1b709c85a/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699ef6ca3bd2d3b1b709c85a');
|
||||
addNewMarker(50.049168412058556, 14.302095927878957, '#1565C0', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699ed0af74468ff4c2079aa1"><b style="font-size:14px;">4 600 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 86 m² | 8. NP</span><br><br><b>Hynka Puce, Praha 5 - Stodůlky</b><br>Stavba: Cihlová<br>Vlastnictví: družstevní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-13-hynka-puce/699ed0af74468ff4c2079aa1/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699ed0af74468ff4c2079aa1');
|
||||
addNewMarker(50.009743674736, 14.460835345662, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="693690e98418631b48025208"><b style="font-size:14px;">11 323 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 87 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Libušská, Praha 4 - Libuš</b><br>Stavba: Cihlová<br>Vlastnictví: družstevní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-12-libusska/693690e98418631b48025208/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '693690e98418631b48025208');
|
||||
addNewMarker(50.0652882346, 14.3931192571, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="699487a84abe8029bd065570"><b style="font-size:14px;">13 490 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+1 | 96 m² | 4. NP</span><br><br><b>Na Václavce, Praha 5 - Smíchov</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-5-na-vaclavce/699487a84abe8029bd065570/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '699487a84abe8029bd065570');
|
||||
addNewMarker(50.04710645755815, 14.473057214055794, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="697c7e54d08e16f19902d777"><b style="font-size:14px;">11 590 040 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 76 m² | 5. NP</span><br><br><b>Žilinská, Praha 4 - Záběhlice</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-4-zilinska/697c7e54d08e16f19902d777/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '697c7e54d08e16f19902d777');
|
||||
addNewMarker(50.0579944444, 14.4682905556, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="6941cf632ff10124be08ce19"><b style="font-size:14px;">13 249 900 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 94 m² | 14. NP</span><br><br><b>V dolině, Praha 10 - Michle</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-10-v-doline/6941cf632ff10124be08ce19/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '6941cf632ff10124be08ce19');
|
||||
addNewMarker(50.0290438889, 14.3641566667, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="690c2cba1c264f9f43027912"><b style="font-size:14px;">10 631 123 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 74 m² | 6. NP</span><br><br><b>Voskovcova, Praha 5 - Hlubočepy</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-5-voskovcova/690c2cba1c264f9f43027912/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '690c2cba1c264f9f43027912');
|
||||
addNewMarker(50.026899, 14.613713, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="68404b3d8178bbed020f1742"><b style="font-size:14px;">10 990 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 71 m² | 5. NP</span><br><br><b>Praha 10 - Uhříněves</b><br>Stavba: Skeletová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-22/68404b3d8178bbed020f1742/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '68404b3d8178bbed020f1742');
|
||||
addNewMarker(50.1297302, 14.4286652, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="6932bf9dc9442dc194054416"><b style="font-size:14px;">8 100 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 71 m² | 5. NP</span><br><br><b>Štětínská, Praha 8 - Bohnice, okres Praha</b><br>Stavba: 1974<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-8-stetinska/6932bf9dc9442dc194054416/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '6932bf9dc9442dc194054416');
|
||||
addNewMarker(50.030382258, 14.5931238354, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="68f0b7b4263df471cb050df9"><b style="font-size:14px;">10 363 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">4+kk | 75 m² | 4. NP</span><br><br><b>Karla Guta, Praha 10 - Uhříněves</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-22-karla-guta/68f0b7b4263df471cb050df9/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '68f0b7b4263df471cb050df9');
|
||||
addNewMarker(50.132835725, 14.5613326001, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="695cdf5113e97880200d9e62"><b style="font-size:14px;">11 133 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 82 m² | 3. NP</span><br><br><b>K Vinoři, Praha 9 - Kbely</b><br>Stavba: 2026<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-19-k-vinori/695cdf5113e97880200d9e62/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '695cdf5113e97880200d9e62');
|
||||
addNewMarker(50.0114383, 14.5469, '#42A5F5', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="69930de7098209b20e066a6c"><b style="font-size:14px;">11 000 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><span style="margin-left:6px;font-size:11px;background:#FFD600;color:#333;padding:1px 6px;border-radius:3px;font-weight:bold;">NOVÉ</span><br><span style="color:#666;">3+kk | 91 m² | 3. NP</span><br><br><b>Formanská, Praha 4 - Újezd u Průhonic, okres Praha</b><br>Stavba: 2017<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-11-formanska/69930de7098209b20e066a6c/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '69930de7098209b20e066a6c');
|
||||
addMarker(50.009743674736, 14.460835345662, '#66BB6A', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="693690e98418631b48025208"><b style="font-size:14px;">11 323 000 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+1 | 87 m² | 2. NP</span><br><span style="color:#FF9800;font-weight:bold;">⚠ 2. NP — zvážit klidnost lokality</span><br><br><b>Libušská, Praha 4 - Libuš</b><br>Stavba: Cihlová<br>Vlastnictví: družstevní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-12-libusska/693690e98418631b48025208/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '693690e98418631b48025208');
|
||||
addMarker(50.04710645755815, 14.473057214055794, '#EF6C00', '<div style="min-width:280px;font-family:system-ui,sans-serif;" data-hashid="697c7e54d08e16f19902d777"><b style="font-size:14px;">11 590 040 Kč</b><span style="margin-left:8px;font-size:11px;background:#FF6F00;color:white;padding:1px 6px;border-radius:3px;">iDNES</span><br><span style="color:#666;">3+kk | 76 m² | 5. NP</span><br><br><b>Žilinská, Praha 4 - Záběhlice</b><br>Stavba: Cihlová<br>Vlastnictví: osobní<br><br><a href="https://reality.idnes.cz/detail/prodej/byt/praha-4-zilinska/697c7e54d08e16f19902d777/" target="_blank" style="color:#FF6F00;text-decoration:none;font-weight:bold;">→ Otevřít na iDNES</a><div style="margin-top:10px;padding-top:8px;border-top:1px solid #eee;"><div style="display:flex;gap:6px;align-items:center;"><button class="rate-btn fav-btn" data-action="fav" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">⭐</button><button class="rate-btn rej-btn" data-action="reject" style="padding:4px 12px;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:16px;background:#fff;">🚫</button><span class="rating-status" style="margin-left:6px;font-size:12px;color:#999;"></span></div><textarea class="rating-note" placeholder="Poznámka..." style="width:100%;margin-top:6px;padding:4px;border:1px solid #ddd;border-radius:4px;font-size:12px;resize:vertical;min-height:32px;display:none;font-family:system-ui,sans-serif;"></textarea></div></div>', '697c7e54d08e16f19902d777');
|
||||
|
||||
|
||||
// ── Rating system ──────────────────────────────────────────────
|
||||
@@ -280,11 +356,6 @@ function loadRatings() {
|
||||
|
||||
function saveRatings(ratings) {
|
||||
localStorage.setItem(RATINGS_KEY, JSON.stringify(ratings));
|
||||
fetch('/api/ratings', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(ratings)
|
||||
});
|
||||
}
|
||||
|
||||
function addRejectStrike(marker) {
|
||||
@@ -565,16 +636,8 @@ function applyFilters() {
|
||||
document.getElementById('visible-count').textContent = visible;
|
||||
}
|
||||
|
||||
// Initialize ratings on load — fetch from API (source of truth), seed cache, then restore
|
||||
fetch('/api/ratings')
|
||||
.then(function(r) { return r.ok ? r.json() : {}; })
|
||||
.then(function(data) {
|
||||
localStorage.setItem(RATINGS_KEY, JSON.stringify(data));
|
||||
restoreRatings();
|
||||
})
|
||||
.catch(function() {
|
||||
restoreRatings();
|
||||
});
|
||||
// Initialize ratings on load
|
||||
restoreRatings();
|
||||
|
||||
// ── Panel toggle ──────────────────────────────────────────────
|
||||
function togglePanel() {
|
||||
|
||||
+1
-6
@@ -11,9 +11,4 @@
|
||||
|
||||
|
||||
## documentation
|
||||
- precisely document original intent of the app (Maru has to provide this)
|
||||
|
||||
##
|
||||
- prepare production run
|
||||
- probably in home kubernetes
|
||||
- maru-hleda-byt.lab.home.hrajfrisbee.cz
|
||||
- precisely document original intent of the app (Maru has to provide this)
|
||||
+12
-3
@@ -20,8 +20,10 @@ START_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S")
|
||||
START_EPOCH=$(date +%s)
|
||||
LOG_FILE="$(pwd)/scrape_run.log"
|
||||
|
||||
# Mark status as running
|
||||
echo '{"status":"running"}' > status.json
|
||||
# Mark scraper as running; cleaned up on exit (even on error/kill)
|
||||
LOCK_FILE="${DATA_DIR:-.}/scraper_running.json"
|
||||
echo '{"running":true,"started_at":"'"$START_TIME"'"}' > "$LOCK_FILE"
|
||||
trap 'rm -f "$LOCK_FILE"' EXIT
|
||||
|
||||
show_help() {
|
||||
echo "Usage: ./run_all.sh [OPTIONS]"
|
||||
@@ -32,16 +34,19 @@ show_help() {
|
||||
echo " --max-pages N Maximální počet stránek ke stažení z každého zdroje"
|
||||
echo " --max-properties N Maximální počet nemovitostí ke stažení z každého zdroje"
|
||||
echo " --log-level LEVEL Úroveň logování (DEBUG, INFO, WARNING, ERROR)"
|
||||
echo " --keep N Počet běhů v historii (výchozí: 5, 0=neomezeno)"
|
||||
echo " -h, --help Zobrazí tuto nápovědu"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " ./run_all.sh # plný běh"
|
||||
echo " ./run_all.sh --max-pages 1 --max-properties 10 # rychlý test"
|
||||
echo " ./run_all.sh --log-level DEBUG # s debug logováním"
|
||||
echo " ./run_all.sh --keep 10 # uchovej 10 běhů v historii"
|
||||
}
|
||||
|
||||
# Parse arguments
|
||||
SCRAPER_ARGS=""
|
||||
KEEP_ARG=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
@@ -52,6 +57,10 @@ while [[ $# -gt 0 ]]; do
|
||||
SCRAPER_ARGS="$SCRAPER_ARGS $1 $2"
|
||||
shift 2
|
||||
;;
|
||||
--keep)
|
||||
KEEP_ARG="--keep $2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1"
|
||||
echo ""
|
||||
@@ -103,7 +112,7 @@ python3 merge_and_map.py || { echo -e "${RED}✗ Merge selhal${NC}"; FAILED=$((F
|
||||
|
||||
END_EPOCH=$(date +%s)
|
||||
DURATION=$((END_EPOCH - START_EPOCH))
|
||||
python3 generate_status.py "$START_TIME" "$DURATION" "$LOG_FILE"
|
||||
python3 generate_status.py --start-time "$START_TIME" --duration "$DURATION" $KEEP_ARG
|
||||
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
|
||||
+36
-2
@@ -15,6 +15,9 @@ import urllib.request
|
||||
import urllib.parse
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_sreality.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -209,6 +212,8 @@ def load_cache(json_path: str = "byty_sreality.json") -> dict[int, dict]:
|
||||
|
||||
def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
"""Main scraping function. Returns list of filtered estates."""
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
all_estates_raw = []
|
||||
cache = load_cache()
|
||||
|
||||
@@ -366,6 +371,21 @@ def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Sreality",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(unique_estates),
|
||||
"cache_hits": cache_hits,
|
||||
"excluded": {
|
||||
"panel/síd": excluded_panel,
|
||||
"<69 m²": excluded_small,
|
||||
"bez GPS": excluded_no_gps,
|
||||
"bez detailu": excluded_no_detail,
|
||||
},
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
@@ -653,7 +673,7 @@ def generate_map(estates: list[dict], output_path: str = "mapa_bytu.html"):
|
||||
Skrýt zamítnuté
|
||||
</label>
|
||||
</div>
|
||||
<div class="status-link"><a href="status.html">Scraper status</a></div>
|
||||
<div class="status-link"><a href="/scrapers-status">Scraper status</a></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -1089,8 +1109,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Sreality",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
# Save raw data as JSON backup
|
||||
|
||||
+39
-1
@@ -15,6 +15,9 @@ import re
|
||||
import time
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_bezrealitky.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -171,6 +174,8 @@ def load_cache(json_path: str = "byty_bezrealitky.json") -> dict[int, dict]:
|
||||
|
||||
|
||||
def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
cache = load_cache()
|
||||
|
||||
logger.info("=" * 60)
|
||||
@@ -374,6 +379,25 @@ def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Bezrealitky",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(all_adverts),
|
||||
"pages": page - 1,
|
||||
"cache_hits": cache_hits,
|
||||
"excluded": {
|
||||
"dispozice": excluded_disp,
|
||||
"cena": excluded_price,
|
||||
"plocha": excluded_area,
|
||||
"bez GPS": excluded_no_gps,
|
||||
"panel/síd": excluded_panel,
|
||||
"patro": excluded_floor,
|
||||
"bez detailu": excluded_detail,
|
||||
},
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
@@ -394,8 +418,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Bezrealitky",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
json_path = Path("byty_bezrealitky.json")
|
||||
|
||||
+37
-1
@@ -14,6 +14,9 @@ import time
|
||||
import urllib.request
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_cityhome.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -203,6 +206,8 @@ def extract_project_gps(html: str) -> tuple[float, float] | None:
|
||||
|
||||
|
||||
def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
logger.info("=" * 60)
|
||||
logger.info("Stahuji inzeráty z CityHome (city-home.cz)")
|
||||
logger.info(f"Cena: do {format_price(MAX_PRICE)}")
|
||||
@@ -374,6 +379,23 @@ def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "CityHome",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(all_listings),
|
||||
"excluded": {
|
||||
"prodáno": excluded_sold,
|
||||
"typ": excluded_type,
|
||||
"dispozice": excluded_disp,
|
||||
"cena": excluded_price,
|
||||
"plocha": excluded_area,
|
||||
"patro": excluded_floor,
|
||||
"bez GPS": excluded_no_gps,
|
||||
},
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
@@ -394,8 +416,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "CityHome",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
json_path = Path("byty_cityhome.json")
|
||||
|
||||
+39
-1
@@ -17,6 +17,9 @@ import urllib.request
|
||||
import urllib.parse
|
||||
from html.parser import HTMLParser
|
||||
from pathlib import Path
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_idnes.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -279,6 +282,8 @@ def load_cache(json_path: str = "byty_idnes.json") -> dict[str, dict]:
|
||||
|
||||
|
||||
def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
cache = load_cache()
|
||||
|
||||
logger.info("=" * 60)
|
||||
@@ -478,6 +483,25 @@ def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "iDNES",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(all_listings),
|
||||
"pages": page,
|
||||
"cache_hits": cache_hits,
|
||||
"excluded": {
|
||||
"cena": excluded_price,
|
||||
"plocha": excluded_area,
|
||||
"dispozice": excluded_disp,
|
||||
"panel/síd": excluded_panel,
|
||||
"patro": excluded_floor,
|
||||
"bez GPS": excluded_no_gps,
|
||||
"bez detailu": excluded_detail,
|
||||
},
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
@@ -498,8 +522,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "iDNES",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
json_path = Path("byty_idnes.json")
|
||||
|
||||
+39
-4
@@ -15,6 +15,9 @@ import time
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlencode
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_psn.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -67,6 +70,8 @@ def format_price(price: int) -> str:
|
||||
|
||||
|
||||
def scrape(max_properties: int | None = None):
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
logger.info("=" * 60)
|
||||
logger.info("Stahuji inzeráty z PSN.cz")
|
||||
logger.info(f"Cena: do {format_price(MAX_PRICE)}")
|
||||
@@ -93,6 +98,15 @@ def scrape(max_properties: int | None = None):
|
||||
data = fetch_json(url)
|
||||
except Exception as e:
|
||||
logger.error(f"Chyba při stahování: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "PSN",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
return []
|
||||
|
||||
all_units = data.get("units", {}).get("data", [])
|
||||
@@ -234,20 +248,27 @@ def scrape(max_properties: int | None = None):
|
||||
|
||||
logger.info(f"\n{'=' * 60}")
|
||||
logger.info(f"Výsledky PSN:")
|
||||
logger.info(f" Staženo inzerátů: {len(all_units)}")
|
||||
logger.info(f" Staženo jednotek: {len(all_units)}")
|
||||
for reason, count in excluded.items():
|
||||
if count:
|
||||
logger.info(f" Vyloučeno ({reason}): {count}")
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "PSN",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(all_units),
|
||||
"excluded": excluded,
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Scrape apartments from PSN.cz")
|
||||
parser.add_argument("--max-pages", type=int, default=None,
|
||||
help="Ignored — PSN uses a single API call, no pagination")
|
||||
parser.add_argument("--max-properties", type=int, default=None,
|
||||
help="Maximum number of properties to include in results")
|
||||
parser.add_argument("--log-level", type=str, default="INFO",
|
||||
@@ -261,8 +282,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "PSN",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
json_path = Path("byty_psn.json")
|
||||
|
||||
+39
-1
@@ -15,6 +15,9 @@ import re
|
||||
import time
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
from scraper_stats import write_stats
|
||||
|
||||
STATS_FILE = "stats_realingo.json"
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -136,6 +139,8 @@ def load_cache(json_path: str = "byty_realingo.json") -> dict[int, dict]:
|
||||
|
||||
|
||||
def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
_run_start = time.time()
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
cache = load_cache()
|
||||
|
||||
logger.info("=" * 60)
|
||||
@@ -333,6 +338,25 @@ def scrape(max_pages: int | None = None, max_properties: int | None = None):
|
||||
logger.info(f" ✓ Vyhovující byty: {len(results)}")
|
||||
logger.info(f"{'=' * 60}")
|
||||
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Realingo",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - _run_start, 1),
|
||||
"success": True,
|
||||
"accepted": len(results),
|
||||
"fetched": len(all_listings),
|
||||
"pages": page - 1,
|
||||
"cache_hits": cache_hits,
|
||||
"excluded": {
|
||||
"dispozice": excluded_category,
|
||||
"cena": excluded_price,
|
||||
"plocha": excluded_area,
|
||||
"bez GPS": excluded_no_gps,
|
||||
"panel/síd": excluded_panel,
|
||||
"patro": excluded_floor,
|
||||
"bez detailu": excluded_detail,
|
||||
},
|
||||
})
|
||||
return results
|
||||
|
||||
|
||||
@@ -353,8 +377,22 @@ if __name__ == "__main__":
|
||||
handlers=[logging.StreamHandler()]
|
||||
)
|
||||
|
||||
_run_ts = datetime.now().isoformat(timespec="seconds")
|
||||
start = time.time()
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
try:
|
||||
estates = scrape(max_pages=args.max_pages, max_properties=args.max_properties)
|
||||
except Exception as e:
|
||||
logger.error(f"Scraper failed: {e}", exc_info=True)
|
||||
write_stats(STATS_FILE, {
|
||||
"source": "Realingo",
|
||||
"timestamp": _run_ts,
|
||||
"duration_sec": round(time.time() - start, 1),
|
||||
"success": False,
|
||||
"accepted": 0,
|
||||
"fetched": 0,
|
||||
"error": str(e),
|
||||
})
|
||||
raise
|
||||
|
||||
if estates:
|
||||
json_path = Path("byty_realingo.json")
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
"""Shared utility for writing per-scraper run statistics to JSON."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
HERE = Path(__file__).parent
|
||||
DATA_DIR = Path(os.environ.get("DATA_DIR", HERE))
|
||||
|
||||
|
||||
def write_stats(filename: str, stats: dict) -> None:
|
||||
"""Write scraper run stats dict to the data directory."""
|
||||
path = DATA_DIR / filename
|
||||
path.write_text(json.dumps(stats, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
@@ -1,60 +1,78 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Combined HTTP server: serves static files from DATA_DIR and
|
||||
provides the ratings API at /api/ratings.
|
||||
General-purpose HTTP server for maru-hleda-byt.
|
||||
|
||||
GET /api/ratings → returns ratings.json contents
|
||||
POST /api/ratings → saves entire ratings object
|
||||
GET /api/ratings/export → same as GET, with Content-Disposition: attachment
|
||||
GET /<path> → serves static file from DATA_DIR
|
||||
Serves static files from DATA_DIR and additionally handles:
|
||||
GET /scrapers-status → SSR scraper status page
|
||||
GET /api/ratings → ratings.json contents
|
||||
POST /api/ratings → save entire ratings object
|
||||
GET /api/ratings/export → same as GET, with download header
|
||||
GET /api/status → status.json contents (JSON)
|
||||
GET /api/status/history → scraper_history.json contents (JSON)
|
||||
"""
|
||||
|
||||
import argparse
|
||||
from __future__ import annotations
|
||||
|
||||
import functools
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
||||
from pathlib import Path
|
||||
|
||||
from flask import Flask, jsonify, request, send_from_directory
|
||||
|
||||
parser = argparse.ArgumentParser(description="Flat-search map server")
|
||||
parser.add_argument("--log-level", "-l", default=None, choices=["DEBUG", "INFO", "WARNING", "ERROR"], help="Log level (default: INFO)")
|
||||
parser.add_argument("--verbose", "-v", action="store_true", help="Shorthand for --log-level DEBUG")
|
||||
args = parser.parse_args()
|
||||
|
||||
log_level = logging.DEBUG if args.verbose else getattr(logging, args.log_level or "INFO")
|
||||
|
||||
PORT = int(os.environ.get("PORT", 8080))
|
||||
DATA_DIR = Path(os.environ.get("DATA_DIR", ".")).resolve()
|
||||
PORT = int(os.environ.get("SERVER_PORT", 8080))
|
||||
DATA_DIR = Path(os.environ.get("DATA_DIR", "."))
|
||||
RATINGS_FILE = DATA_DIR / "ratings.json"
|
||||
_LOG_LEVEL = getattr(logging, os.environ.get("LOG_LEVEL", "INFO").upper(), logging.INFO)
|
||||
|
||||
logging.basicConfig(
|
||||
level=log_level,
|
||||
level=_LOG_LEVEL,
|
||||
format="%(asctime)s [server] %(levelname)s %(message)s",
|
||||
datefmt="%Y-%m-%dT%H:%M:%S",
|
||||
)
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
app = Flask(__name__, static_folder=None)
|
||||
app.json.ensure_ascii = False
|
||||
# ── Helpers ──────────────────────────────────────────────────────────────────
|
||||
|
||||
COLORS = {
|
||||
"sreality": "#1976D2",
|
||||
"realingo": "#7B1FA2",
|
||||
"bezrealitky": "#E65100",
|
||||
"idnes": "#C62828",
|
||||
"psn": "#2E7D32",
|
||||
"cityhome": "#00838F",
|
||||
}
|
||||
|
||||
MONTHS_CZ = [
|
||||
"ledna", "února", "března", "dubna", "května", "června",
|
||||
"července", "srpna", "září", "října", "listopadu", "prosince",
|
||||
]
|
||||
|
||||
|
||||
@app.after_request
|
||||
def add_cors(response):
|
||||
response.headers["Access-Control-Allow-Origin"] = "*"
|
||||
response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS"
|
||||
response.headers["Access-Control-Allow-Headers"] = "Content-Type"
|
||||
return response
|
||||
def _load_json(path: Path, default=None):
|
||||
"""Read and parse JSON file; return default on missing or parse error."""
|
||||
log.debug("_load_json: %s", path.resolve())
|
||||
try:
|
||||
if path.exists():
|
||||
return json.loads(path.read_text(encoding="utf-8"))
|
||||
except Exception as e:
|
||||
log.warning("Failed to load %s: %s", path, e)
|
||||
return default
|
||||
|
||||
|
||||
def _fmt_date(iso_str: str) -> str:
|
||||
"""Format ISO timestamp as Czech date string."""
|
||||
try:
|
||||
d = datetime.fromisoformat(iso_str)
|
||||
return f"{d.day}. {MONTHS_CZ[d.month - 1]} {d.year}, {d.hour:02d}:{d.minute:02d}"
|
||||
except Exception:
|
||||
return iso_str
|
||||
|
||||
|
||||
def load_ratings() -> dict:
|
||||
try:
|
||||
if RATINGS_FILE.exists():
|
||||
return json.loads(RATINGS_FILE.read_text(encoding="utf-8"))
|
||||
except Exception as e:
|
||||
log.error("Failed to load ratings: %s", e)
|
||||
return {}
|
||||
return _load_json(RATINGS_FILE, default={})
|
||||
|
||||
|
||||
def save_ratings(data: dict) -> None:
|
||||
@@ -64,56 +82,396 @@ def save_ratings(data: dict) -> None:
|
||||
)
|
||||
|
||||
|
||||
@app.route("/api/ratings", methods=["OPTIONS"])
|
||||
@app.route("/api/ratings/export", methods=["OPTIONS"])
|
||||
def ratings_options():
|
||||
return ("", 204)
|
||||
# ── SSR status page ──────────────────────────────────────────────────────────
|
||||
|
||||
_CSS = """\
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
background: #f5f5f5; color: #333;
|
||||
padding: 24px; max-width: 640px; margin: 0 auto;
|
||||
}
|
||||
h1 { font-size: 22px; margin-bottom: 4px; }
|
||||
.subtitle { color: #888; font-size: 13px; margin-bottom: 24px; }
|
||||
.card {
|
||||
background: white; border-radius: 12px; padding: 20px;
|
||||
box-shadow: 0 1px 4px rgba(0,0,0,0.08); margin-bottom: 16px;
|
||||
}
|
||||
.card h2 { font-size: 15px; margin-bottom: 12px; color: #555; }
|
||||
.timestamp { font-size: 28px; font-weight: 700; color: #1976D2; }
|
||||
.timestamp-sub { font-size: 13px; color: #999; margin-top: 2px; }
|
||||
.summary-row {
|
||||
display: flex; justify-content: space-between; align-items: center;
|
||||
padding: 10px 0; border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
.summary-row:last-child { border-bottom: none; }
|
||||
.summary-label { font-size: 13px; color: #666; }
|
||||
.summary-value { font-size: 18px; font-weight: 700; }
|
||||
.badge {
|
||||
display: inline-block; padding: 2px 8px; border-radius: 4px;
|
||||
font-size: 11px; font-weight: 600; color: white;
|
||||
}
|
||||
.badge-ok { background: #4CAF50; }
|
||||
.badge-err { background: #F44336; }
|
||||
.badge-skip { background: #FF9800; }
|
||||
.bar-row { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
|
||||
.bar-track { flex: 1; height: 20px; background: #f0f0f0; border-radius: 4px; overflow: hidden; }
|
||||
.bar-fill { height: 100%; border-radius: 4px; }
|
||||
.bar-count { font-size: 12px; width: 36px; font-variant-numeric: tabular-nums; }
|
||||
.loader-wrap {
|
||||
display: flex; flex-direction: column; align-items: center;
|
||||
justify-content: center; padding: 60px 0;
|
||||
}
|
||||
.spinner {
|
||||
width: 40px; height: 40px; border: 4px solid #e0e0e0;
|
||||
border-top-color: #1976D2; border-radius: 50%;
|
||||
animation: spin 0.8s linear infinite;
|
||||
}
|
||||
@keyframes spin { to { transform: rotate(360deg); } }
|
||||
.loader-text { margin-top: 16px; color: #999; font-size: 14px; }
|
||||
.link-row { text-align: center; margin-top: 8px; }
|
||||
.link-row a { color: #1976D2; text-decoration: none; font-size: 14px; }
|
||||
.history-table { width: 100%; border-collapse: collapse; font-size: 12px; }
|
||||
.history-table th {
|
||||
text-align: left; font-weight: 600; color: #999; font-size: 11px;
|
||||
padding: 4px 6px 8px 6px; border-bottom: 2px solid #f0f0f0;
|
||||
}
|
||||
.history-table td { padding: 7px 6px; border-bottom: 1px solid #f5f5f5; vertical-align: middle; }
|
||||
.history-table tr:last-child td { border-bottom: none; }
|
||||
.history-table tr.latest td { background: #f8fbff; font-weight: 600; }
|
||||
.src-nums { display: flex; gap: 4px; flex-wrap: wrap; }
|
||||
.src-chip {
|
||||
display: inline-block; padding: 1px 5px; border-radius: 3px;
|
||||
font-size: 10px; color: white; font-variant-numeric: tabular-nums;
|
||||
}
|
||||
.clickable-row { cursor: pointer; }
|
||||
.clickable-row:hover td { background: #f0f7ff !important; }
|
||||
/* Modal */
|
||||
#md-overlay {
|
||||
position: fixed; inset: 0; background: rgba(0,0,0,0.45);
|
||||
display: flex; align-items: flex-start; justify-content: center;
|
||||
z-index: 1000; padding: 40px 16px; overflow-y: auto;
|
||||
}
|
||||
#md-box {
|
||||
background: white; border-radius: 12px; padding: 24px;
|
||||
width: 100%; max-width: 620px; position: relative;
|
||||
box-shadow: 0 8px 32px rgba(0,0,0,0.24); margin: auto;
|
||||
}
|
||||
#md-close {
|
||||
position: absolute; top: 10px; right: 14px;
|
||||
background: none; border: none; font-size: 26px; cursor: pointer;
|
||||
color: #aaa; line-height: 1;
|
||||
}
|
||||
#md-close:hover { color: #333; }
|
||||
#md-box h3 { font-size: 15px; margin-bottom: 14px; padding-right: 24px; }
|
||||
.md-summary { display: flex; gap: 20px; flex-wrap: wrap; font-size: 13px; margin-bottom: 16px; color: #555; }
|
||||
.md-summary b { color: #333; }
|
||||
.detail-table { width: 100%; border-collapse: collapse; font-size: 12px; }
|
||||
.detail-table th {
|
||||
text-align: left; color: #999; font-size: 11px; font-weight: 600;
|
||||
padding: 4px 8px 6px 0; border-bottom: 2px solid #f0f0f0; white-space: nowrap;
|
||||
}
|
||||
.detail-table td { padding: 6px 8px 6px 0; border-bottom: 1px solid #f5f5f5; vertical-align: top; }
|
||||
.detail-table tr:last-child td { border-bottom: none; }
|
||||
"""
|
||||
|
||||
_SOURCE_ORDER = ["Sreality", "Realingo", "Bezrealitky", "iDNES", "PSN", "CityHome"]
|
||||
_SOURCE_ABBR = ["Sre", "Rea", "Bez", "iDN", "PSN", "CH"]
|
||||
|
||||
|
||||
@app.route("/api/ratings", methods=["GET"])
|
||||
def get_ratings():
|
||||
ratings = load_ratings()
|
||||
log.info("GET /api/ratings → %d ratings", len(ratings))
|
||||
return jsonify(ratings)
|
||||
def _sources_html(sources: list) -> str:
|
||||
if not sources:
|
||||
return ""
|
||||
max_count = max((s.get("accepted", 0) for s in sources), default=1) or 1
|
||||
parts = ['<div class="card"><h2>Zdroje</h2>']
|
||||
for s in sources:
|
||||
name = s.get("name", "?")
|
||||
accepted = s.get("accepted", 0)
|
||||
error = s.get("error")
|
||||
exc = s.get("excluded", {})
|
||||
excluded_total = sum(exc.values()) if isinstance(exc, dict) else s.get("excluded_total", 0)
|
||||
color = COLORS.get(name.lower(), "#999")
|
||||
pct = round(accepted / max_count * 100) if max_count else 0
|
||||
if error:
|
||||
badge = '<span class="badge badge-err">chyba</span>'
|
||||
elif accepted == 0:
|
||||
badge = '<span class="badge badge-skip">0</span>'
|
||||
else:
|
||||
badge = '<span class="badge badge-ok">OK</span>'
|
||||
parts.append(
|
||||
f'<div style="margin-bottom:12px;">'
|
||||
f'<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;">'
|
||||
f'<span style="font-weight:600;font-size:14px;">{name} {badge}</span>'
|
||||
f'<span style="font-size:12px;color:#999;">{excluded_total} vyloučených</span>'
|
||||
f'</div>'
|
||||
f'<div class="bar-row">'
|
||||
f'<div class="bar-track"><div class="bar-fill" style="width:{pct}%;background:{color};"></div></div>'
|
||||
f'<span class="bar-count">{accepted}</span>'
|
||||
f'</div></div>'
|
||||
)
|
||||
parts.append("</div>")
|
||||
return "".join(parts)
|
||||
|
||||
|
||||
@app.route("/api/ratings/export", methods=["GET"])
|
||||
def export_ratings():
|
||||
ratings = load_ratings()
|
||||
log.info("GET /api/ratings/export → %d ratings", len(ratings))
|
||||
response = jsonify(ratings)
|
||||
response.headers["Content-Disposition"] = 'attachment; filename="ratings.json"'
|
||||
return response
|
||||
def _history_html(history: list) -> str:
|
||||
if not history:
|
||||
return ""
|
||||
rows = list(reversed(history))
|
||||
parts = [
|
||||
'<div class="card">'
|
||||
'<h2>Historie běhů <span style="font-size:11px;font-weight:400;color:#bbb;">– klikni pro detaily</span></h2>',
|
||||
'<table class="history-table"><thead><tr>',
|
||||
'<th>Datum</th><th>Trvání</th><th>Přijato / Dedup</th><th>Zdroje</th><th>OK</th>',
|
||||
'</tr></thead><tbody>',
|
||||
]
|
||||
for i, entry in enumerate(rows):
|
||||
row_class = ' class="latest clickable-row"' if i == 0 else ' class="clickable-row"'
|
||||
src_map = {s["name"]: s for s in entry.get("sources", []) if "name" in s}
|
||||
chips = "".join(
|
||||
f'<span class="src-chip" style="background:{"#F44336" if (src_map.get(name) or {}).get("error") else COLORS.get(name.lower(), "#999")}" title="{name}">'
|
||||
f'{abbr} {src_map[name].get("accepted", 0) if name in src_map else "-"}</span>'
|
||||
for name, abbr in zip(_SOURCE_ORDER, _SOURCE_ABBR)
|
||||
)
|
||||
ok_badge = (
|
||||
'<span class="badge badge-err">chyba</span>'
|
||||
if entry.get("success") is False
|
||||
else '<span class="badge badge-ok">OK</span>'
|
||||
)
|
||||
dur = f'{entry["duration_sec"]}s' if entry.get("duration_sec") is not None else "-"
|
||||
parts.append(
|
||||
f'<tr{row_class} data-idx="{i}">'
|
||||
f'<td>{_fmt_date(entry.get("timestamp", ""))}</td>'
|
||||
f'<td>{dur}</td>'
|
||||
f'<td>{entry.get("total_accepted", "-")} / {entry.get("deduplicated", "-")}</td>'
|
||||
f'<td><div class="src-nums">{chips}</div></td>'
|
||||
f'<td>{ok_badge}</td>'
|
||||
f'</tr>'
|
||||
)
|
||||
parts.append("</tbody></table></div>")
|
||||
return "".join(parts)
|
||||
|
||||
|
||||
@app.route("/api/ratings", methods=["POST"])
|
||||
def post_ratings():
|
||||
length = request.content_length
|
||||
if not length:
|
||||
return jsonify({"error": "empty body"}), 400
|
||||
try:
|
||||
data = request.get_json(force=True, silent=False)
|
||||
except Exception as e:
|
||||
log.warning("Bad request body: %s", e)
|
||||
return jsonify({"error": "invalid JSON"}), 400
|
||||
if not isinstance(data, dict):
|
||||
return jsonify({"error": "expected JSON object"}), 400
|
||||
save_ratings(data)
|
||||
log.info("POST /api/ratings → saved %d ratings", len(data))
|
||||
return jsonify({"ok": True, "count": len(data)})
|
||||
def _modal_script(rows_json: str) -> str:
|
||||
"""Return the modal overlay HTML + JS for the history detail popup."""
|
||||
return (
|
||||
'<div id="md-overlay" style="display:none">'
|
||||
'<div id="md-box"><button id="md-close">×</button>'
|
||||
'<div id="md-body"></div></div></div>\n'
|
||||
'<script>\n(function(){\n'
|
||||
f'var H={rows_json};\n'
|
||||
'var C={"sreality":"#1976D2","realingo":"#7B1FA2","bezrealitky":"#E65100","idnes":"#C62828","psn":"#2E7D32","cityhome":"#00838F"};\n'
|
||||
'var MN=["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"];\n'
|
||||
'function fd(s){var d=new Date(s);return d.getDate()+". "+MN[d.getMonth()]+" "+d.getFullYear()+", "+String(d.getHours()).padStart(2,"0")+":"+String(d.getMinutes()).padStart(2,"0");}\n'
|
||||
'function openModal(idx){\n'
|
||||
' var e=H[idx],src=e.sources||[];\n'
|
||||
' var h="<h3>Detaily b\u011bhu \u2013 "+fd(e.timestamp)+"</h3>";\n'
|
||||
' h+="<div class=\\"md-summary\\">";\n'
|
||||
' if(e.duration_sec!=null) h+="<span><b>Trvání:</b> "+e.duration_sec+"s</span>";\n'
|
||||
' if(e.total_accepted!=null) h+="<span><b>Přijato:</b> "+e.total_accepted+"</span>";\n'
|
||||
' if(e.deduplicated!=null) h+="<span><b>Po dedup:</b> "+e.deduplicated+"</span>";\n'
|
||||
' h+="</div>";\n'
|
||||
' h+="<table class=\\"detail-table\\"><thead><tr>";\n'
|
||||
' h+="<th>Zdroj</th><th>Přijato</th><th>Staženo</th><th>Stránky</th><th>Cache</th><th>Vyloučeno</th><th>Čas</th><th>OK</th>";\n'
|
||||
' h+="</tr></thead><tbody>";\n'
|
||||
' src.forEach(function(s){\n'
|
||||
' var nm=s.name||"?",col=C[nm.toLowerCase()]||"#999";\n'
|
||||
' var exc=s.excluded||{};\n'
|
||||
' var excStr=Object.entries(exc).filter(function(kv){return kv[1]>0;}).map(function(kv){return kv[0]+": "+kv[1];}).join(", ")||"\u2013";\n'
|
||||
' var ok=s.error?"<span class=\\"badge badge-err\\" title=\\""+s.error+"\\">chyba</span>":"<span class=\\"badge badge-ok\\">OK</span>";\n'
|
||||
' var dot="<span style=\\"display:inline-block;width:8px;height:8px;border-radius:50%;background:"+col+";margin-right:5px;\\"></span>";\n'
|
||||
' h+="<tr>";\n'
|
||||
' h+="<td>"+dot+nm+"</td>";\n'
|
||||
' h+="<td>"+(s.accepted!=null?s.accepted:"\u2013")+"</td>";\n'
|
||||
' h+="<td>"+(s.fetched!=null?s.fetched:"\u2013")+"</td>";\n'
|
||||
' h+="<td>"+(s.pages!=null?s.pages:"\u2013")+"</td>";\n'
|
||||
' h+="<td>"+(s.cache_hits!=null?s.cache_hits:"\u2013")+"</td>";\n'
|
||||
' h+="<td style=\\"font-size:11px;color:#666;\\">"+excStr+"</td>";\n'
|
||||
' h+="<td>"+(s.duration_sec!=null?s.duration_sec+"s":"\u2013")+"</td>";\n'
|
||||
' h+="<td>"+ok+"</td></tr>";\n'
|
||||
' });\n'
|
||||
' h+="</tbody></table>";\n'
|
||||
' document.getElementById("md-body").innerHTML=h;\n'
|
||||
' document.getElementById("md-overlay").style.display="flex";\n'
|
||||
'}\n'
|
||||
'function closeModal(){document.getElementById("md-overlay").style.display="none";}\n'
|
||||
'var tb=document.querySelector(".history-table tbody");\n'
|
||||
'if(tb)tb.addEventListener("click",function(e){var tr=e.target.closest("tr[data-idx]");if(tr)openModal(parseInt(tr.dataset.idx,10));});\n'
|
||||
'document.getElementById("md-close").addEventListener("click",closeModal);\n'
|
||||
'document.getElementById("md-overlay").addEventListener("click",function(e){if(e.target===this)closeModal();});\n'
|
||||
'document.addEventListener("keydown",function(e){if(e.key==="Escape")closeModal();});\n'
|
||||
'})();\n</script>'
|
||||
)
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
return send_from_directory(str(DATA_DIR), "mapa_bytu.html")
|
||||
def _render_status_html(status: dict | None, history: list, is_running: bool = False) -> str:
|
||||
"""Generate the complete HTML page for /scrapers-status."""
|
||||
head_open = (
|
||||
'<!DOCTYPE html>\n<html lang="cs">\n<head>\n'
|
||||
'<meta charset="UTF-8">\n'
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">\n'
|
||||
f'<title>Scraper status</title>\n<style>{_CSS}</style>\n'
|
||||
)
|
||||
page_header = '<h1>Scraper status</h1>\n<div class="subtitle">maru-hleda-byt</div>\n'
|
||||
footer = '<div class="link-row"><a href="/">Otevřít mapu</a></div>'
|
||||
|
||||
if status is None:
|
||||
return (
|
||||
head_open + '</head>\n<body>\n' + page_header
|
||||
+ '<div class="card"><p style="color:#F44336">Status není k dispozici.</p></div>\n'
|
||||
+ footer + '\n</body>\n</html>'
|
||||
)
|
||||
|
||||
if is_running:
|
||||
return (
|
||||
head_open
|
||||
+ '<meta http-equiv="refresh" content="30">\n'
|
||||
+ '</head>\n<body>\n' + page_header
|
||||
+ '<div class="loader-wrap"><div class="spinner"></div>'
|
||||
+ '<div class="loader-text">Scraper právě běží…</div></div>\n'
|
||||
+ footer + '\n</body>\n</html>'
|
||||
)
|
||||
|
||||
# ── Done state ────────────────────────────────────────────────────────────
|
||||
ts = status.get("timestamp", "")
|
||||
duration = status.get("duration_sec")
|
||||
total_accepted = status.get("total_accepted", 0)
|
||||
deduplicated = status.get("deduplicated")
|
||||
|
||||
ts_card = (
|
||||
'<div class="card"><h2>Poslední scrape</h2>'
|
||||
f'<div class="timestamp">{_fmt_date(ts)}</div>'
|
||||
+ (f'<div class="timestamp-sub">Trvání: {round(duration)}s</div>' if duration is not None else "")
|
||||
+ '</div>'
|
||||
)
|
||||
|
||||
sum_card = (
|
||||
'<div class="card"><h2>Souhrn</h2>'
|
||||
f'<div class="summary-row"><span class="summary-label">Vyhovujících bytů</span>'
|
||||
f'<span class="summary-value" style="color:#4CAF50">{total_accepted}</span></div>'
|
||||
+ (
|
||||
f'<div class="summary-row"><span class="summary-label">Po deduplikaci (v mapě)</span>'
|
||||
f'<span class="summary-value" style="color:#1976D2">{deduplicated}</span></div>'
|
||||
if deduplicated is not None else ""
|
||||
)
|
||||
+ '</div>'
|
||||
)
|
||||
|
||||
rows_for_js = list(reversed(history))
|
||||
body = (
|
||||
page_header
|
||||
+ ts_card + "\n"
|
||||
+ sum_card + "\n"
|
||||
+ _sources_html(status.get("sources", [])) + "\n"
|
||||
+ _history_html(history) + "\n"
|
||||
+ footer
|
||||
)
|
||||
modal = _modal_script(json.dumps(rows_for_js, ensure_ascii=False))
|
||||
return head_open + '</head>\n<body>\n' + body + '\n' + modal + '\n</body>\n</html>'
|
||||
|
||||
|
||||
@app.route("/<path:filename>")
|
||||
def static_files(filename):
|
||||
return send_from_directory(str(DATA_DIR), filename)
|
||||
# ── HTTP handler ──────────────────────────────────────────────────────────────
|
||||
|
||||
class Handler(SimpleHTTPRequestHandler):
|
||||
def log_message(self, format, *args):
|
||||
pass # suppress default access log; use our own where needed
|
||||
|
||||
def _send_json(self, status: int, body, extra_headers=None):
|
||||
payload = json.dumps(body, ensure_ascii=False).encode("utf-8")
|
||||
self.send_response(status)
|
||||
self.send_header("Content-Type", "application/json; charset=utf-8")
|
||||
self.send_header("Content-Length", str(len(payload)))
|
||||
self.send_header("Access-Control-Allow-Origin", "*")
|
||||
self.send_header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
|
||||
self.send_header("Access-Control-Allow-Headers", "Content-Type")
|
||||
if extra_headers:
|
||||
for k, v in extra_headers.items():
|
||||
self.send_header(k, v)
|
||||
self.end_headers()
|
||||
self.wfile.write(payload)
|
||||
|
||||
def do_OPTIONS(self):
|
||||
self.send_response(204)
|
||||
self.send_header("Access-Control-Allow-Origin", "*")
|
||||
self.send_header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
|
||||
self.send_header("Access-Control-Allow-Headers", "Content-Type")
|
||||
self.end_headers()
|
||||
|
||||
def do_GET(self):
|
||||
if self.path.startswith("/api/"):
|
||||
self._handle_api_get()
|
||||
elif self.path.rstrip("/") == "/scrapers-status":
|
||||
self._serve_status_page()
|
||||
else:
|
||||
log.debug("GET %s → static file: %s", self.path, self.translate_path(self.path))
|
||||
super().do_GET()
|
||||
|
||||
def _handle_api_get(self):
|
||||
if self.path in ("/api/ratings", "/api/ratings/export"):
|
||||
ratings = load_ratings()
|
||||
extra = None
|
||||
if self.path == "/api/ratings/export":
|
||||
extra = {"Content-Disposition": 'attachment; filename="ratings.json"'}
|
||||
log.info("GET %s → %d ratings", self.path, len(ratings))
|
||||
self._send_json(200, ratings, extra)
|
||||
elif self.path == "/api/status":
|
||||
data = _load_json(DATA_DIR / "status.json")
|
||||
if data is None:
|
||||
self._send_json(404, {"error": "status not available"})
|
||||
return
|
||||
log.info("GET /api/status → ok")
|
||||
self._send_json(200, data)
|
||||
elif self.path == "/api/status/history":
|
||||
data = _load_json(DATA_DIR / "scraper_history.json", default=[])
|
||||
if not isinstance(data, list):
|
||||
data = []
|
||||
log.info("GET /api/status/history → %d entries", len(data))
|
||||
self._send_json(200, data)
|
||||
else:
|
||||
self._send_json(404, {"error": "not found"})
|
||||
|
||||
def _serve_status_page(self):
|
||||
status = _load_json(DATA_DIR / "status.json")
|
||||
history = _load_json(DATA_DIR / "scraper_history.json", default=[])
|
||||
if not isinstance(history, list):
|
||||
history = []
|
||||
is_running = (DATA_DIR / "scraper_running.json").exists()
|
||||
html = _render_status_html(status, history, is_running)
|
||||
payload = html.encode("utf-8")
|
||||
self.send_response(200)
|
||||
self.send_header("Content-Type", "text/html; charset=utf-8")
|
||||
self.send_header("Content-Length", str(len(payload)))
|
||||
self.end_headers()
|
||||
self.wfile.write(payload)
|
||||
|
||||
def do_POST(self):
|
||||
if self.path == "/api/ratings":
|
||||
length = int(self.headers.get("Content-Length", 0))
|
||||
if length == 0:
|
||||
self._send_json(400, {"error": "empty body"})
|
||||
return
|
||||
try:
|
||||
raw = self.rfile.read(length)
|
||||
data = json.loads(raw.decode("utf-8"))
|
||||
except Exception as e:
|
||||
log.warning("Bad request body: %s", e)
|
||||
self._send_json(400, {"error": "invalid JSON"})
|
||||
return
|
||||
if not isinstance(data, dict):
|
||||
self._send_json(400, {"error": "expected JSON object"})
|
||||
return
|
||||
save_ratings(data)
|
||||
log.info("POST /api/ratings → saved %d ratings", len(data))
|
||||
self._send_json(200, {"ok": True, "count": len(data)})
|
||||
else:
|
||||
self._send_json(404, {"error": "not found"})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
log.info("Server starting on port %d, data dir: %s", PORT, DATA_DIR)
|
||||
log.info("Ratings file: %s", RATINGS_FILE)
|
||||
app.run(host="0.0.0.0", port=PORT)
|
||||
handler = functools.partial(Handler, directory=str(DATA_DIR))
|
||||
server = HTTPServer(("0.0.0.0", PORT), handler)
|
||||
try:
|
||||
server.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
log.info("Stopped.")
|
||||
sys.exit(0)
|
||||
|
||||
-204
@@ -1,204 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Scraper status</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
background: #f5f5f5; color: #333;
|
||||
padding: 24px; max-width: 640px; margin: 0 auto;
|
||||
}
|
||||
h1 { font-size: 22px; margin-bottom: 4px; }
|
||||
.subtitle { color: #888; font-size: 13px; margin-bottom: 24px; }
|
||||
.card {
|
||||
background: white; border-radius: 12px; padding: 20px;
|
||||
box-shadow: 0 1px 4px rgba(0,0,0,0.08); margin-bottom: 16px;
|
||||
}
|
||||
.card h2 { font-size: 15px; margin-bottom: 12px; color: #555; }
|
||||
.timestamp {
|
||||
font-size: 28px; font-weight: 700; color: #1976D2;
|
||||
}
|
||||
.timestamp-ago { font-size: 13px; color: #999; margin-top: 2px; }
|
||||
|
||||
/* Source table */
|
||||
.source-table { width: 100%; border-collapse: collapse; }
|
||||
.source-table td { padding: 8px 0; border-bottom: 1px solid #f0f0f0; font-size: 14px; }
|
||||
.source-table tr:last-child td { border-bottom: none; }
|
||||
.source-table .name { font-weight: 600; }
|
||||
.source-table .count { text-align: right; font-variant-numeric: tabular-nums; }
|
||||
.source-table .rejected { text-align: right; color: #999; font-size: 12px; }
|
||||
.badge {
|
||||
display: inline-block; padding: 2px 8px; border-radius: 4px;
|
||||
font-size: 11px; font-weight: 600; color: white;
|
||||
}
|
||||
.badge-ok { background: #4CAF50; }
|
||||
.badge-err { background: #F44336; }
|
||||
.badge-skip { background: #FF9800; }
|
||||
|
||||
/* Summary bar */
|
||||
.summary-row {
|
||||
display: flex; justify-content: space-between; align-items: center;
|
||||
padding: 10px 0; border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
.summary-row:last-child { border-bottom: none; }
|
||||
.summary-label { font-size: 13px; color: #666; }
|
||||
.summary-value { font-size: 18px; font-weight: 700; }
|
||||
|
||||
/* Source bar chart */
|
||||
.bar-row { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
|
||||
.bar-label { width: 90px; font-size: 12px; text-align: right; color: #666; }
|
||||
.bar-track { flex: 1; height: 20px; background: #f0f0f0; border-radius: 4px; overflow: hidden; position: relative; }
|
||||
.bar-fill { height: 100%; border-radius: 4px; transition: width 0.5s ease; }
|
||||
.bar-count { font-size: 12px; width: 36px; font-variant-numeric: tabular-nums; }
|
||||
|
||||
/* Loader */
|
||||
.loader-wrap {
|
||||
display: flex; flex-direction: column; align-items: center;
|
||||
justify-content: center; padding: 60px 0;
|
||||
}
|
||||
.spinner {
|
||||
width: 40px; height: 40px; border: 4px solid #e0e0e0;
|
||||
border-top-color: #1976D2; border-radius: 50%;
|
||||
animation: spin 0.8s linear infinite;
|
||||
}
|
||||
@keyframes spin { to { transform: rotate(360deg); } }
|
||||
.loader-text { margin-top: 16px; color: #999; font-size: 14px; }
|
||||
|
||||
.error-msg { color: #F44336; padding: 40px 0; text-align: center; }
|
||||
.link-row { text-align: center; margin-top: 8px; }
|
||||
.link-row a { color: #1976D2; text-decoration: none; font-size: 14px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Scraper status</h1>
|
||||
<div class="subtitle">maru-hleda-byt</div>
|
||||
|
||||
<div id="content">
|
||||
<div class="loader-wrap">
|
||||
<div class="spinner"></div>
|
||||
<div class="loader-text">Nacitam status...</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="link-row"><a href="mapa_bytu.html">Otevrit mapu</a></div>
|
||||
|
||||
<script>
|
||||
var COLORS = {
|
||||
sreality: '#1976D2',
|
||||
realingo: '#7B1FA2',
|
||||
bezrealitky: '#E65100',
|
||||
idnes: '#C62828',
|
||||
psn: '#2E7D32',
|
||||
cityhome: '#00838F',
|
||||
};
|
||||
|
||||
function timeAgo(dateStr) {
|
||||
var d = new Date(dateStr);
|
||||
var now = new Date();
|
||||
var diff = Math.floor((now - d) / 1000);
|
||||
if (diff < 60) return 'prave ted';
|
||||
if (diff < 3600) return Math.floor(diff / 60) + ' min zpet';
|
||||
if (diff < 86400) return Math.floor(diff / 3600) + ' hod zpet';
|
||||
return Math.floor(diff / 86400) + ' dni zpet';
|
||||
}
|
||||
|
||||
function formatDate(dateStr) {
|
||||
var d = new Date(dateStr);
|
||||
var day = d.getDate();
|
||||
var months = ['ledna','unora','brezna','dubna','kvetna','cervna',
|
||||
'cervence','srpna','zari','rijna','listopadu','prosince'];
|
||||
var hh = String(d.getHours()).padStart(2, '0');
|
||||
var mm = String(d.getMinutes()).padStart(2, '0');
|
||||
return day + '. ' + months[d.getMonth()] + ' ' + d.getFullYear() + ', ' + hh + ':' + mm;
|
||||
}
|
||||
|
||||
function render(data) {
|
||||
// Check if scrape is currently running
|
||||
if (data.status === 'running') {
|
||||
document.getElementById('content').innerHTML =
|
||||
'<div class="loader-wrap">' +
|
||||
'<div class="spinner"></div>' +
|
||||
'<div class="loader-text">Scraper prave bezi...</div>' +
|
||||
'</div>';
|
||||
setTimeout(loadStatus, 30000);
|
||||
return;
|
||||
}
|
||||
|
||||
var sources = data.sources || [];
|
||||
var totalOk = 0, totalRej = 0;
|
||||
var maxCount = 0;
|
||||
sources.forEach(function(s) {
|
||||
totalOk += s.accepted || 0;
|
||||
totalRej += s.rejected || 0;
|
||||
if (s.accepted > maxCount) maxCount = s.accepted;
|
||||
});
|
||||
|
||||
var html = '';
|
||||
|
||||
// Timestamp card
|
||||
html += '<div class="card">';
|
||||
html += '<h2>Posledni scrape</h2>';
|
||||
html += '<div class="timestamp">' + formatDate(data.timestamp) + '</div>';
|
||||
html += '<div class="timestamp-ago">' + timeAgo(data.timestamp) + '</div>';
|
||||
if (data.duration_sec) {
|
||||
html += '<div class="timestamp-ago">Trvani: ' + Math.round(data.duration_sec) + 's</div>';
|
||||
}
|
||||
html += '</div>';
|
||||
|
||||
// Summary card
|
||||
html += '<div class="card">';
|
||||
html += '<h2>Souhrn</h2>';
|
||||
html += '<div class="summary-row"><span class="summary-label">Vyhovujicich bytu</span><span class="summary-value" style="color:#4CAF50">' + totalOk + '</span></div>';
|
||||
html += '<div class="summary-row"><span class="summary-label">Vyloucenych</span><span class="summary-value" style="color:#999">' + totalRej + '</span></div>';
|
||||
if (data.deduplicated !== undefined) {
|
||||
html += '<div class="summary-row"><span class="summary-label">Po deduplikaci (v mape)</span><span class="summary-value" style="color:#1976D2">' + data.deduplicated + '</span></div>';
|
||||
}
|
||||
html += '</div>';
|
||||
|
||||
// Sources card
|
||||
html += '<div class="card">';
|
||||
html += '<h2>Zdroje</h2>';
|
||||
sources.forEach(function(s) {
|
||||
var color = COLORS[s.name.toLowerCase()] || '#999';
|
||||
var pct = maxCount > 0 ? Math.round((s.accepted / maxCount) * 100) : 0;
|
||||
var badge = s.error
|
||||
? '<span class="badge badge-err">chyba</span>'
|
||||
: (s.accepted === 0 ? '<span class="badge badge-skip">0</span>' : '<span class="badge badge-ok">OK</span>');
|
||||
|
||||
html += '<div style="margin-bottom:12px;">';
|
||||
html += '<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;">';
|
||||
html += '<span style="font-weight:600;font-size:14px;">' + s.name + ' ' + badge + '</span>';
|
||||
html += '<span style="font-size:12px;color:#999;">' + (s.rejected || 0) + ' vyloucenych</span>';
|
||||
html += '</div>';
|
||||
html += '<div class="bar-row">';
|
||||
html += '<div class="bar-track"><div class="bar-fill" style="width:' + pct + '%;background:' + color + ';"></div></div>';
|
||||
html += '<span class="bar-count">' + (s.accepted || 0) + '</span>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
});
|
||||
html += '</div>';
|
||||
|
||||
document.getElementById('content').innerHTML = html;
|
||||
}
|
||||
|
||||
function loadStatus() {
|
||||
fetch('status.json?t=' + Date.now())
|
||||
.then(function(r) {
|
||||
if (!r.ok) throw new Error(r.status);
|
||||
return r.json();
|
||||
})
|
||||
.then(render)
|
||||
.catch(function(err) {
|
||||
document.getElementById('content').innerHTML =
|
||||
'<div class="error-msg">Status zatim neni k dispozici.<br><small>(' + err.message + ')</small></div>';
|
||||
});
|
||||
}
|
||||
|
||||
loadStatus();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user