archive/
After Width: | Height: | Size: 797 KiB |
After Width: | Height: | Size: 777 KiB |
After Width: | Height: | Size: 962 KiB |
After Width: | Height: | Size: 828 KiB |
After Width: | Height: | Size: 687 KiB |
After Width: | Height: | Size: 935 KiB |
After Width: | Height: | Size: 963 KiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 870 KiB |
After Width: | Height: | Size: 785 KiB |
After Width: | Height: | Size: 725 KiB |
After Width: | Height: | Size: 889 KiB |
After Width: | Height: | Size: 895 KiB |
After Width: | Height: | Size: 699 KiB |
After Width: | Height: | Size: 754 KiB |
@ -0,0 +1,19 @@
|
||||
<p><a href="http://b-e-e-t.r-o-o-t.net/">b-e-e-t.r-o-o-t.net</a> to Wijnhaven 61<br>
|
||||
17th February, 2019</p>
|
||||
<img class="image" src="IMG_7960.JPG">
|
||||
<img class="image" src="IMG_7961.JPG">
|
||||
<img class="image" src="IMG_7962.JPG">
|
||||
<img class="image" src="IMG_7963.JPG">
|
||||
<img class="image" src="IMG_7964.JPG">
|
||||
<img class="image" src="IMG_7965.JPG">
|
||||
<img class="image" src="IMG_7966.JPG">
|
||||
<img class="image" src="IMG_7967.JPG">
|
||||
<p><a href="http://b-e-e-t.r-o-o-t.net/">b-e-e-t.r-o-o-t.net</a> to Wijnhaven 61<br>
|
||||
25th February, 2019</p>
|
||||
<img class="image" src="IMG_8080.JPG">
|
||||
<img class="image" src="IMG_8081.JPG">
|
||||
<img class="image" src="IMG_8084.JPG">
|
||||
<img class="image" src="IMG_8093.JPG">
|
||||
<img class="image" src="IMG_8096.JPG">
|
||||
<img class="image" src="IMG_8097.JPG">
|
||||
<img class="image" src="IMG_8104.JPG">
|
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4217 3556" style="enable-background:new 0 0 4217 3556;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:3.685;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:10;}
|
||||
.st1{fill:#231F20;}
|
||||
.st2{font-family:'TimesNewRomanPSMT';}
|
||||
.st3{font-size:60px;}
|
||||
</style>
|
||||
<polyline class="st0" points="3759.1,96 3759.1,96 3764.3,94.3 3757.4,91.2 3759.1,92 3761.3,99.5 3756.6,104.9 3756.2,109.9
|
||||
3761.3,119 3756.3,123.1 3744.4,126.5 3728.8,127 3722.2,126.9 3688.2,130 3673.3,140.2 3667.5,140.6 3662.8,143.1 3662.7,146.9
|
||||
3664.8,151.2 3656.3,163.1 3650.2,166.4 3649.3,167.2 3647.7,168.3 3624.4,183.5 3597.3,195.8 3593.4,194.7 3587,195 3584.5,193.9
|
||||
3581.6,189.8 3576.6,186.6 3571.5,185.7 3565,186.6 3535.7,192 3529.4,195.5 3521.5,203.7 3519.6,209.1 3516.7,212.8 3497.7,212.6
|
||||
3489.6,212.6 3468.2,214 3452.9,211.8 3438,213.9 3423,217.4 3410.6,215.5 3397.5,212.4 3392.1,210.4 3378.2,212 3375.6,213.2
|
||||
3363.7,216 3354.9,214.6 3302.4,205.5 3298,209.5 3294,212.8 3289.3,215.9 3229,258.8 3221.7,263 3202.6,278.7 3193.2,287.1
|
||||
3180.6,295.6 3148.1,329.1 3143.6,332.3 3134.6,332.6 3132.2,332.8 3127.1,335 3109.6,347.8 3102.5,348.7 3097.4,348.7
|
||||
3089.9,348.2 3073.2,345 3071.4,343.6 3065.7,342.8 3063,344 3053.3,349.1 3051.2,353.3 3059.9,381.8 3066.5,394.2 3072.1,411.5
|
||||
3099.3,481.9 3141.8,590.5 3142.1,592 3144.1,598.8 3148.1,608.8 3140.2,637.1 3130,645.8 3127.2,661.7 3126.1,678.5 3121.6,683.7
|
||||
3116.1,685.6 3102.9,686 3092.2,687.3 3083.6,688.5 2998.1,700.9 2971.3,700.6 2953.4,705 2944.6,705.7 2841.2,719.8 2829.1,718.4
|
||||
2809.3,721.5 2795.2,725.3 2746.2,732.1 2731.3,732.6 2674.6,749.5 2675.4,752.1 2674.6,754.2 2673.5,754.2 2672.7,754.9
|
||||
2672.3,756.2 2672.9,757.7 2678.6,765.4 2683.7,771.5 2686.1,775.3 2691.9,787.5 2690.1,789.5 2688.1,790.2 2684.2,792.8
|
||||
2683.8,793.9 2685.1,798.1 2691.3,819 2700.3,828.5 2708.3,835.4 2711.7,839.9 2711,848 2707,854.4 2709.4,858.3 2712.9,862.4
|
||||
2719.2,869.8 2720.9,877.7 2718.7,882.3 2715,885.4 2714.9,890.2 2715.4,891.5 2716.3,895.1 2718.5,905.7 2715.6,911.8
|
||||
2714.1,916.7 2706.3,934 2709.1,946.2 2707.3,950.8 2706.1,953.9 2705.1,955.4 2704.6,956.7 2703.8,957.8 2701.1,959.9 2700.3,960
|
||||
2695.5,960.2 2684.7,961.9 2677.1,960.4 2670.7,959.9 2663.7,961.2 2636.9,965.5 2618.6,968.4 2614.5,972.5 2613.5,976.9
|
||||
2613.3,994.4 2614.8,999.7 2616,1004 2615.6,1018.4 2614.1,1033.7 2631.1,1052.6 2630.8,1055.2 2626.8,1062.6 2621.6,1072.5
|
||||
2622.3,1084.5 2621.5,1085.8 2622,1091.6 2626.3,1098 2630,1105.1 2637.4,1117.6 2640.1,1125 2638.1,1129.9 2637.5,1136.1
|
||||
2641.6,1141.3 2644.3,1146.4 2643,1175.2 2618,1188.9 2582.7,1204.7 2571.4,1204.9 2565.5,1206.1 2546.5,1206.9 2543.8,1206.7
|
||||
2536.9,1207.1 2526.1,1206.6 2486.6,1217.9 2475.6,1219.9 2470.9,1223 2451,1231.7 2442.5,1235.2 2440.1,1240.1 2434.8,1252.1
|
||||
2429.7,1252.3 2424.2,1254.3 2422.5,1254.6 2420.1,1254.9 2402.1,1258.2 2400.1,1259.4 2397.7,1261.2 2394.5,1261.6 2393,1260.9
|
||||
2386.2,1261.9 2328.6,1285.3 2320.7,1288.5 2303,1292.8 2294.8,1293.9 2289.8,1293.2 2280.4,1293.1 2273.1,1294.3 2252.6,1298.7
|
||||
2246.3,1300.2 2241.4,1302.3 2232.9,1304.1 2217.6,1306.1 2210.1,1307.6 2203.9,1308 2195.4,1309 2187.3,1311.9 2170.7,1316.3
|
||||
2164.5,1317.5 2128.7,1328.2 2114.1,1337.9 2100.8,1348.7 2053.2,1357.9 2040.5,1359.5 2012.7,1371.1 1993.6,1382.9 1990.9,1383.7
|
||||
1988.1,1384.9 1978.7,1389.4 1972.9,1392.7 1962.7,1396.7 1956.2,1401.3 1945.8,1407.7 1940.5,1410 1935.4,1412.8 1927.9,1416.8
|
||||
1910.4,1421.8 1900.9,1424.4 1885.6,1428 1857.4,1439.9 1852.3,1442.5 1823.4,1452.2 1820.7,1452.8 1814,1453.7 1806.4,1454.9
|
||||
1794.7,1459.2 1765.1,1465.1 1722.6,1472.1 1640,1506.5 1621.9,1514.9 1608.9,1518.1 1581.3,1531.3 1553.4,1539.3 1541.6,1540.2
|
||||
1492.5,1549.6 1483.5,1550.9 1475.2,1553.6 1447.3,1562.3 1434.7,1563.3 1421.5,1571.3 1409.1,1580.8 1399.3,1587.3 1381.8,1596.9
|
||||
1380.6,1597.4 1373.5,1599.5 1366.5,1601.5 1363.7,1602.8 1356.4,1604.3 1347.9,1605 1336.7,1608.4 1319.3,1619 1322.8,1625.1
|
||||
1325.7,1628.7 1350.8,1648.5 1350.4,1650.9 1350.5,1653.6 1351.3,1657.8 1357.5,1663 1361.3,1666.5 1362.5,1667.2 1362.3,1667.3
|
||||
1362.5,1666.5 1364.1,1668.5 1369.8,1676.2 1390.4,1700.3 1408.5,1724 1410.3,1726.6 1409.5,1727.8 1409.8,1730.9 1407.7,1732.6
|
||||
1405.1,1735.4 1408.3,1740.4 1411.9,1745.5 1444,1784.5 1448.6,1786.9 1450,1787.2 1450.8,1787 1451,1786.4 1453.9,1782.7
|
||||
1468,1781.8 1472.7,1784.1 1477.2,1787.2 1480.5,1790.5 1482.7,1794.1 1500.6,1816.5 1560.9,1861.2 1561.8,1866.1 1575.1,1884.1
|
||||
1575.1,1884.2 1573.1,1884.1 1572.2,1884.1 1570.8,1883.8 1569.9,1883.2 1569.5,1883 1569.6,1883 1569.5,1884.2 1570.3,1888.1
|
||||
1573.2,1900.2 1568.7,1903 1562.7,1904.9 1555.5,1906 1546,1908.2 1521.1,1919 1482.7,1921.4 1473.2,1922.2 1465,1923.5
|
||||
1455.4,1924.5 1429.4,1930.9 1419.3,1934 1361.1,1965.1 1302.5,1980.6 1259.9,1995.7 1255.1,1998.9 1249.2,2002.6 1188.8,2025.2
|
||||
1184.8,2035.5 1173.4,2099.8 1166.9,2107.5 1155.3,2118.1 1152.5,2126.5 1149.8,2140.6 1152.1,2150.8 1147.8,2167.7 1129,2196.2
|
||||
1128,2200.9 1125.6,2204.8 1122.2,2213 1118.9,2226.3 1122.3,2230.7 1125.8,2236.9 1123.3,2244.9 1109.5,2269.7 1106.1,2292.5
|
||||
1099.8,2307.4 1101.4,2314.1 1076.1,2405.7 1064.4,2473.5 1068.4,2480.3 1074.7,2494.6 1080.8,2509.2 1085.3,2524.6 1086.7,2555.4
|
||||
1085.2,2560 1090.2,2566.8 1092.3,2578.1 1095.8,2598.1 1107.9,2621.7 1112.2,2630.4 1116.2,2645.7 1122.2,2672.3 1123.3,2677.6
|
||||
1130.5,2686.3 1134.4,2689.5 1133.7,2693.4 1130.8,2698.2 1128.2,2701.7 1127.4,2703.2 1121.5,2714.3 1108.3,2715.9 1103.4,2713.8
|
||||
1091.6,2708.5 1126.8,3031.9 1125.8,3069.8 1069.4,2958.5 1057.7,2901.1 1120.2,2862.2 1216.3,2817.1 1201,2807.5 1203.2,2807.4
|
||||
1153.2,2840.5 1148.6,2846.5 1143.4,2851.6 1133.7,2860.6 1134.3,2871 1135.7,2877.8 1142.5,2895 1150.6,2910.3 1165.6,2928.7
|
||||
1168.5,2954.6 1160.8,3047.8 1153,3048.8 1146.7,3048.4 1105,3044 1098.7,3047 1075.8,3063.3 1024.7,3079.9 1021.4,3082.5
|
||||
1019.8,3083.2 1018.4,3084 1016,3085 1013.2,3086.2 1012.9,3086.6 1012.7,3087 1007.3,3088.8 1004.1,3093.2 1000.1,3097.2
|
||||
992,3098.3 968.4,3104.1 967.2,3105.1 963.1,3108.2 954.2,3110.4 916.9,3114.1 916.3,3114 913.7,3115.1 905.7,3116.9 902.1,3117.1
|
||||
898.8,3116.9 895.7,3116.8 887.2,3117.8 874.2,3119.4 868,3119.4 864.1,3119.8 844.4,3119.8 842.5,3119.9 840.1,3120.3
|
||||
835.1,3121.6 831.8,3122.6 797.5,3132 795.5,3132.5 793,3133.3 791,3134.4 787.3,3136 783.3,3137.2 776.4,3139.9 767.8,3142.8
|
||||
741.6,3152.7 730.8,3156.9 706.3,3177.1 701.7,3179.6 696.1,3179.4 692.4,3176.7 684.3,3172.7 680.3,3172.7 672.8,3173.3
|
||||
665.3,3174.7 656.7,3180 649.4,3183 624.9,3191.4 610.2,3196.1 591,3203.7 580.8,3206.4 562.6,3210.7 542.6,3215 531.1,3217.5
|
||||
523.7,3220.7 512.3,3225.8 504.8,3228.9 492.4,3232.5 488.3,3235.2 483.2,3239 472.5,3241.1 465,3238.3 462.7,3237.3 460.8,3236.5
|
||||
456.9,3235.1 452.1,3233.5 447.5,3231.3 440.8,3229.7 435.5,3227.7 421.7,3225.4 415.5,3228.2 407.4,3230.4 395.9,3235.2
|
||||
387.7,3240 379.8,3245.1 362,3252.1 337.6,3267.5 332.9,3270.6 330.5,3271.3 328.5,3271.7 326.1,3272.2 319.9,3274 299.4,3276.5
|
||||
291.7,3273.8 289,3272.7 266.8,3270.6 254.9,3271.8 246.7,3272.6 226.8,3273 220.3,3276.2 208.3,3288 208.5,3289.6 206.2,3290
|
||||
198.5,3289.6 190.8,3289.6 180.4,3288.7 173.9,3286.7 158.6,3284.1 151,3282.4 149.5,3282.1 148.7,3281.9 148.1,3281.1
|
||||
147.7,3280.4 146.7,3278.6 145.9,3278.1 148.4,3277.2 154.2,3282.1 148.5,3287.2 153.4,3282 153.2,3277.4 151.9,3275.2
|
||||
150.7,3272.2 150.1,3266.4 146.5,3266.3 135.5,3268.2 137,3273.4 138.5,3280.9 143.3,3285.9 151,3283.5 158.2,3282.7 163.8,3280.5
|
||||
159,3276.6 149.3,3273.8 141.7,3273.4 131.4,3274 112.7,3273.4 113.1,3274 116.4,3272.5 121.2,3278.4 128.3,3278.4 131.4,3277
|
||||
129.5,3276.9 126,3276.6 126.7,3276.2 126.4,3275.3 126,3274.9 129.6,3275.3 124.7,3268.6 125.1,3271.5 119.6,3267.1 110.2,3265.2
|
||||
109.3,3264.7 108.6,3267 110.5,3269.1 111.8,3270.3 112.9,3272.9 109,3273.3 105.5,3273.7 110.1,3270.1 112.3,3271.1 119,3274.1
|
||||
122.3,3273.3 121.7,3270.6 128.8,3271 132.8,3271.1 134.3,3273.3 140,3277.2 144.2,3285.2 147.2,3276 149.7,3271.4 151.6,3271.1
|
||||
152.8,3271.7 155.4,3274.1 151.1,3273.5 136.5,3268.3 140.8,3267.4 165.7,3267.4 179.2,3271.1 179.9,3271.1 177,3274.2
|
||||
175.5,3270.9 174.3,3278.6 163.3,3275.2 154.2,3280.1 155.9,3284.3 153.9,3285.5 149.7,3295 155.1,3298.8 156.8,3294.7
|
||||
158.7,3289.1 162.6,3286.4 164.1,3285.1 164.1,3286 164.1,3287.6 162.5,3291.5 157.9,3295.3 156.4,3297.8 155.6,3304.8
|
||||
157.8,3313.8 152.6,3321.5 145.1,3322.8 131.2,3323.8 120.1,3322.2 113,3322.8 106.4,3326.2 103.5,3329.2 92.5,3332.3 90.2,3333.5
|
||||
84.7,3336.8 79.5,3342.2 76.5,3348.6 72.5,3353.6 69.7,3357.3 63.3,3361.4 55.4,3363 48.8,3366.3 45.8,3373 45,3378.4 42.2,3383.1
|
||||
"/>
|
||||
<a xlink:href="http://ciao.urca.tv" >
|
||||
<text transform="matrix(1 0 0 1 41.7266 3448.4043)" class="st1 st2 st3">ciao.urca.tv</text>
|
||||
</a>
|
||||
<a xlink:href="http://rich.folks.club" >
|
||||
<text transform="matrix(1 0 0 1 41.7266 3520.4043)" class="st1 st2 st3">rich.folks.club</text>
|
||||
</a>
|
||||
<text transform="matrix(1 0 0 1 3761.3398 66.4023)" class="st1 st2 st3">b-e-e-t.r-o-o-t.net</text>
|
||||
</svg>
|
After Width: | Height: | Size: 8.9 KiB |
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1791 1788" style="enable-background:new 0 0 1791 1788;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:3.685;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:10;}
|
||||
.st1{fill:#231F20;}
|
||||
.st2{font-family:'TimesNewRomanPSMT';}
|
||||
.st3{font-size:60px;}
|
||||
</style>
|
||||
<polyline class="st0" points="445.2,1725 445.2,1725 444.7,1726.1 444.4,1726.1 443.9,1726.7 442.3,1729.4 439.4,1732.8
|
||||
432.6,1734.9 424.8,1734.6 418.4,1734.6 417.3,1734.2 415.6,1730.8 407,1731.8 379.5,1734.9 361.3,1734 348,1734.1 335.4,1734.4
|
||||
282,1744 264.9,1747.1 221.7,1757.4 216.1,1754.1 213.8,1749.5 209.6,1744 204.8,1737.5 203.7,1736.5 200.1,1732.9 195,1726.7
|
||||
188.7,1721.2 186.8,1719.9 181.1,1717.3 172.8,1714.5 154.1,1711.8 148.1,1711.3 137,1709 124.2,1703.8 116.1,1697.9 109.6,1692.5
|
||||
108.4,1688.8 104.5,1686 97.7,1685.6 81.6,1683.8 78.1,1682.1 76.8,1681.7 76.9,1681.1 77.4,1677.1 77.6,1671 77.4,1669.9
|
||||
78.1,1666.1 80.7,1571.5 82,1566.2 103.2,1489.9 96.7,1482.7 17.2,1412.7 21.4,1408 31.4,1401.9 60.1,1386.4 69,1380.9 74.8,1378.3
|
||||
85.9,1372.8 89.9,1369.8 111.5,1360 112.6,1358.4 116.2,1354.7 129.9,1348.5 157.1,1339.5 179.9,1326.6 329.8,1260.9 339.2,1256.3
|
||||
359.5,1247.1 396,1231.8 401.5,1227.7 437.8,1210.8 560.8,1150.9 593.5,1126.6 604.5,1117.7 697,1081.1 700.8,1078.9 781.7,1048
|
||||
786.2,1045.6 810.7,1034.2 817.7,1031.3 821.8,1028.3 827.5,1023.8 835.8,1020 845.2,1014.6 856.7,1001.1 862.7,997.7 865.5,994
|
||||
863.7,990.2 860.4,981.9 859,978.6 854.4,976.4 847.8,973.9 846.8,973.3 833.1,966.4 827.9,963.3 806,960.9 784.7,956.2 778,955
|
||||
771.2,955 762.3,949.9 762,945.2 759,939.4 761.2,937.5 771.8,931.5 810.8,906.6 846.8,875.2 888.2,852.1 895.2,848.5 909.4,841.8
|
||||
915.4,841 946,818.4 968.9,811 997.5,812.7 1015.4,817.3 1030.5,822.5 1048.6,822 1049.2,822 1050.3,821.4 1051.6,820.5
|
||||
1058.9,817.4 1063.4,814.5 1067.1,811.2 1066.8,804.9 1068.7,799 1072.2,797.4 1088,787.7 1090,785.2 1091.5,782.8 1091.7,777.5
|
||||
1088.8,771.6 1086.1,768.7 1083.3,764.5 1084,759.1 1089.3,745.7 1102.2,742.3 1166.8,726.4 1217.8,694.5 1326.8,592.7 1350.2,571
|
||||
1355.6,562.8 1362.4,552.9 1362.3,551.7 1367.4,547.4 1391.3,531.3 1409,514.8 1444.8,493.1 1452.5,489.7 1472.4,474.6
|
||||
1475.9,471.5 1491.6,454.2 1545.6,417.9 1554.6,413.7 1579.1,403.1 1590.8,397.9 1728.7,312.1 1741.3,302.6 1741.9,301.9
|
||||
1746.2,296.9 1753.9,283.8 1754.6,282.6 1754.9,281.5 1756,276.4 1750.9,265.4 1737,251.1 1717.6,237.5 1710.1,230.6 1708.5,229.5
|
||||
1707,229.1 1690.3,214.3 1686.4,209.6 1658.5,189.5 1653.1,185.8 1634.6,176.5 1628.7,173.2 1622.9,169.8 1551.1,132.1
|
||||
1546.9,129.1 1545.3,128.3 1544.6,128.3 1544,127.9 1543.2,126.4 1541.7,124.6 1534.6,119.8 1531,118.6 1530.6,115.9 1531.8,115.7
|
||||
1527.3,109.5 1513.9,102.2 1505.8,94.9 1489,83.2 1471.8,66.7 1468.1,63.5 1464.3,61.1 1462.3,60 1460.4,58.8 1458.4,57.7
|
||||
1454.1,55.3 1452.1,54.1 1439.1,45.8 1424.9,28.9 1413.7,23.1 1384.6,14.2 1356.7,19.4 1348.9,21.3 1338.8,26.8 1322.2,32.7
|
||||
1317.1,35.7 1306,42.4 1301.3,45.5 1294.9,47.9 1287.8,50.6 1258.7,72.2 "/>
|
||||
<text transform="matrix(1 0 0 1 757.8945 74.1582)"><tspan x="0" y="0" class="st1 st2 st3">please.undo.undo.it</tspan><tspan x="0" y="72" class="st1 st2 st3">nothat.bad.mn</tspan><tspan x="0" y="144" class="st1 st2 st3">sweetandsour.chickenkiller.com</tspan></text>
|
||||
<text transform="matrix(1 0 0 1 476.3906 1757.4043)" class="st1 st2 st3">foshan.1992.pw</text>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 7.3 KiB |
@ -0,0 +1,320 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Slixmpp: The Slick XMPP Library
|
||||
Copyright (C) 2010 Nathanael C. Fritz
|
||||
This file is part of Slixmpp.
|
||||
|
||||
See the file LICENSE for copying permission.
|
||||
"""
|
||||
|
||||
# Code source: https://git.poez.io/slixmpp/tree/examples/muc.py
|
||||
|
||||
# To run this bot:
|
||||
# $ python3 streambot.py --jid username@yourdomainname.ext --password password --room channel@groups.domainname.ext --nick nickname --output ./output/
|
||||
# python3 streambot.py --jid rita@please.undo.undo.it --room paranodal.activity@groups.please.undo.undo.it --nick test --output ./output/
|
||||
|
||||
|
||||
import logging
|
||||
from getpass import getpass
|
||||
from argparse import ArgumentParser
|
||||
|
||||
import slixmpp
|
||||
import ssl, os, requests, urllib
|
||||
|
||||
#idea of class is important: like creating your own concepts, names, etc. like a library
|
||||
class MUCBot(slixmpp.ClientXMPP):
|
||||
"""
|
||||
A simple Slixmpp bot that will save images
|
||||
and messages that are marked with #publish to a folder.
|
||||
"""
|
||||
|
||||
def __init__(self, jid, password, room, nick, output, outputparanodal):
|
||||
slixmpp.ClientXMPP.__init__(self, jid, password)
|
||||
|
||||
self.room = room
|
||||
self.nick = nick
|
||||
self.output = output
|
||||
self.outputparanodal = outputparanodal
|
||||
self.tmp = None
|
||||
|
||||
|
||||
# The session_start event will be triggered when
|
||||
# the bot establishes its connection with the server
|
||||
# and the XML streams are ready for use. We want to
|
||||
# listen for this event so that we we can initialize
|
||||
# our roster.
|
||||
self.add_event_handler("session_start", self.start)
|
||||
|
||||
# The groupchat_message event is triggered whenever a message
|
||||
# stanza is received from any chat room. If you also also
|
||||
# register a handler for the 'message' event, MUC messages
|
||||
# will be processed by both handlers.
|
||||
self.add_event_handler("groupchat_message", self.muc_message)
|
||||
|
||||
|
||||
def start(self, event):
|
||||
"""
|
||||
Process the session_start event.
|
||||
|
||||
Typical actions for the session_start event are
|
||||
requesting the roster and broadcasting an initial
|
||||
presence stanza.
|
||||
"""
|
||||
|
||||
self.get_roster()
|
||||
self.send_presence()
|
||||
|
||||
# https://xmpp.org/extensions/xep-0045.html
|
||||
self.plugin['xep_0045'].join_muc(self.room,
|
||||
self.nick,
|
||||
# If a room password is needed, use:
|
||||
# password=the_room_password,
|
||||
wait=True)
|
||||
|
||||
def muc_message(self, msg):
|
||||
"""
|
||||
Process incoming message stanzas from any chat room. Be aware
|
||||
that if you also have any handlers for the 'message' event,
|
||||
message stanzas may be processed by both handlers, so check
|
||||
the 'type' attribute when using a 'message' event handler.
|
||||
|
||||
Whenever the bot's nickname is mentioned, respond to
|
||||
the message.
|
||||
|
||||
IMPORTANT: Always check that a message is not from yourself,
|
||||
otherwise you will create an infinite loop responding
|
||||
to your own messages.
|
||||
|
||||
This handler will reply to messages that mention
|
||||
the bot's nickname.
|
||||
|
||||
Arguments:
|
||||
msg -- The received message stanza. See the documentation
|
||||
for stanza objects and the Message stanza to see
|
||||
how it may be used.
|
||||
"""
|
||||
|
||||
# Some inspection commands
|
||||
print('......,.......................')
|
||||
print('Message:{}'.format(msg))
|
||||
# print('\nMessage TYPE:{}'.format(msg['type']))
|
||||
# print('\nMessage body:{}'.format(msg['body']))
|
||||
print('Message OOB:{}'.format(msg['oob']))
|
||||
print('Message OOB URL:{}'.format(msg['oob']['url']))
|
||||
# print('\nMessage MUCK NICK:{}'.format(msg['mucnick']))
|
||||
|
||||
# Always check that a message is not the bot itself, otherwise you will create an infinite loop responding to your own messages.
|
||||
if msg['mucnick'] != self.nick:
|
||||
#
|
||||
#Check if an OOB URL is included in the stanza (which is how an image is sent)
|
||||
#(OOB object - https://xmpp.org/extensions/xep-0066.html#x-oob)
|
||||
print(len(msg['oob']['url']))
|
||||
if len(msg['oob']['url']) > 0:
|
||||
|
||||
|
||||
|
||||
|
||||
# Save the image to the output folder
|
||||
url = msg['oob']['url'] # grep the url in the message
|
||||
self.tmp = url
|
||||
|
||||
|
||||
#Send a reply
|
||||
|
||||
self.send_message(mto=msg['from'].bare,
|
||||
mbody="Please put hashtag!",
|
||||
mtype='groupchat')
|
||||
# message = '<p class="message">{}</p>'.format(msg['body'])
|
||||
# if not os.path.exists(word):
|
||||
# os.mkdir(word)
|
||||
|
||||
# # Send a reply
|
||||
# self.send_message(mto=msg['from'].bare,
|
||||
# mbody="oke {}.".format(msg['mucnick']),
|
||||
# mtype='groupchat')
|
||||
#
|
||||
# output = self.output
|
||||
# if not os.path.exists(output):
|
||||
# os.mkdir(output)
|
||||
# output_path = os.path.join(output, filename)
|
||||
|
||||
# u = urllib.request.urlopen(url) # read the image data
|
||||
# f = open(output_path, 'wb') # open the output file
|
||||
# f.write(u.read()) # write image to file
|
||||
# f.close() # close the output file
|
||||
#
|
||||
# # Add image to stream
|
||||
# img = '<img class="image" src="{}">'.format(filename)
|
||||
# stream = 'stream.html'
|
||||
# stream_path = os.path.join(output, stream)
|
||||
# f = open(stream_path, 'a+')
|
||||
# f.write(img+'\n')
|
||||
# f.close()
|
||||
|
||||
# Include messages in the stream (only when '#' is used in the message. creates a folder for each #)
|
||||
for word in msg['body'].split():
|
||||
if word.startswith('#'):
|
||||
if self.tmp:
|
||||
url = self.tmp
|
||||
print('URL:', url)
|
||||
folder = word.replace('#', '')
|
||||
filename = os.path.basename(url) # grep the filename in the url
|
||||
if not os.path.exists(folder):
|
||||
os.mkdir(folder)
|
||||
output_path = os.path.join(folder, filename)
|
||||
u = urllib.request.urlopen(url) # read the image data
|
||||
f = open(output_path, 'wb') # open the output file
|
||||
f.write(u.read()) # write image to file
|
||||
f.close() # close the output file
|
||||
# Add image to stream
|
||||
img = '<img class="image" src="{}">'.format(filename)
|
||||
stream = 'index.html'
|
||||
stream_path = os.path.join(folder, stream)
|
||||
f = open(stream_path, 'a+')
|
||||
f.write(img+'\n')
|
||||
f.close()
|
||||
else:
|
||||
folder = word.replace('#', '')
|
||||
self.send_message(mto=msg['from'].bare,
|
||||
mbody="Be aware {} ! You are creating a hashtag called {}.".format(msg['mucnick'], folder),
|
||||
mtype='groupchat')
|
||||
message = '<p class="message">{}</p>'.format(msg['body'])
|
||||
if not os.path.exists(folder):
|
||||
os.mkdir("{}".format(folder))
|
||||
stream = 'index.html'
|
||||
stream_path = os.path.join(folder, stream)
|
||||
f = open(stream_path, 'a+')
|
||||
message = message.replace(word, '')
|
||||
f.write(message+'\n')
|
||||
f.close()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#HOW TO? Save the image to the output folder
|
||||
# url = msg['oob']['url'] # grep the url in the message
|
||||
# filename = os.path.basename(url) # grep the filename in the url
|
||||
# output = self.output
|
||||
#
|
||||
# #HERE CHANGE TO HASTAHG CREATED
|
||||
# if not os.path.exists(output):
|
||||
# os.mkdir("{}".format(word))
|
||||
# output_path = os.path.join(output, filename)
|
||||
#
|
||||
# u = urllib.request.urlopen(url) # read the image data
|
||||
# f = open(output_path, 'wb') # open the output file
|
||||
# f.write(u.read()) # write image to file
|
||||
# f.close() # close the output file
|
||||
#
|
||||
# # Add image to stream
|
||||
# img = '<img class="image" src="{}">'.format(filename)
|
||||
# stream = 'stream.html'
|
||||
# stream_path = os.path.join(output, stream)
|
||||
# f = open(stream_path, 'a+')
|
||||
# f.write(img+'\n')
|
||||
# f.close()
|
||||
|
||||
|
||||
#
|
||||
# if '#paranodalactivity' in msg['body']:
|
||||
#
|
||||
# # reply from the bot
|
||||
# self.send_message(mto=msg['from'].bare,
|
||||
# mbody="I sense some Paranodal Activity, {}.".format(msg['mucnick']),
|
||||
# mtype='groupchat')
|
||||
#
|
||||
# # Add message to stream
|
||||
# message = '<p class="message">{}</p>'.format(msg['body'])
|
||||
# outputparanodal = self.outputparanodal
|
||||
# if not os.path.exists(outputparanodal):
|
||||
# os.mkdir(outputparanodal)
|
||||
# stream = 'stream.html'
|
||||
# stream_path = os.path.join(outputparanodal, stream)
|
||||
# f = open(stream_path, 'a+')
|
||||
# f.write(message+'\n')
|
||||
# f.close()
|
||||
#
|
||||
# # Include messages in the stream (only when '#paranodalactivity' is used in the message)
|
||||
# if '#physical' in msg['body']:
|
||||
#
|
||||
# # reply from the bot
|
||||
# self.send_message(mto=msg['from'].bare,
|
||||
# mbody="Let's get physical, {}.".format(msg['mucnick']),
|
||||
# mtype='groupchat')
|
||||
#
|
||||
# # Add message to stream
|
||||
# message = '<p class="message">{}</p>'.format(msg['body'])
|
||||
# output = self.output
|
||||
# if not os.path.exists(output):
|
||||
# os.mkdir(output)
|
||||
# stream = 'stream.html'
|
||||
# stream_path = os.path.join(output, stream)
|
||||
# f = open(stream_path, 'a+')
|
||||
# f.write(message+'\n')
|
||||
# f.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Setup the command line arguments.
|
||||
parser = ArgumentParser()
|
||||
|
||||
# output verbosity options.
|
||||
parser.add_argument("-q", "--quiet", help="set logging to ERROR",
|
||||
action="store_const", dest="loglevel",
|
||||
const=logging.ERROR, default=logging.INFO)
|
||||
parser.add_argument("-d", "--debug", help="set logging to DEBUG",
|
||||
action="store_const", dest="loglevel",
|
||||
const=logging.DEBUG, default=logging.INFO)
|
||||
|
||||
# JID and password options.
|
||||
parser.add_argument("-j", "--jid", dest="jid",
|
||||
help="JID to use")
|
||||
parser.add_argument("-p", "--password", dest="password",
|
||||
help="password to use")
|
||||
parser.add_argument("-r", "--room", dest="room",
|
||||
help="MUC room to join")
|
||||
parser.add_argument("-n", "--nick", dest="nick",
|
||||
help="MUC nickname")
|
||||
|
||||
# output folder for images
|
||||
parser.add_argument("-o", "--output", dest="output",
|
||||
help="output folder, this is where the files are stored",
|
||||
default="./output/", type=str)
|
||||
|
||||
# output folder for images
|
||||
parser.add_argument("-op", "--outputpara", dest="outputparanodal",
|
||||
help="outputparanodal folder, this is where the files are stored",
|
||||
default="./outputparanodal/", type=str)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Setup logging.
|
||||
logging.basicConfig(level=args.loglevel,
|
||||
format='%(levelname)-8s %(message)s')
|
||||
|
||||
if args.jid is None:
|
||||
args.jid = input("User: ")
|
||||
if args.password is None:
|
||||
args.password = getpass("Password: ")
|
||||
if args.room is None:
|
||||
args.room = input("MUC room: ")
|
||||
if args.nick is None:
|
||||
args.nick = input("MUC nickname: ")
|
||||
if args.output is None:
|
||||
args.output = input("Output folder: ")
|
||||
|
||||
# Setup the MUCBot and register plugins. Note that while plugins may
|
||||
# have interdependencies, the order in which you register them does
|
||||
# not matter.
|
||||
xmpp = MUCBot(args.jid, args.password, args.room, args.nick, args.output, args.outputparanodal)
|
||||
xmpp.register_plugin('xep_0030') # Service Discovery
|
||||
xmpp.register_plugin('xep_0045') # Multi-User Chat
|
||||
xmpp.register_plugin('xep_0199') # XMPP Ping
|
||||
xmpp.register_plugin('xep_0066') # Process URI's (files, images)
|
||||
|
||||
|
||||
# Connect to the XMPP server and start processing XMPP stanzas.
|
||||
xmpp.connect()
|
||||
xmpp.process()
|
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 594 KiB |
@ -0,0 +1,5 @@
|
||||
<img class="image" src="IMG_8176.JPG">
|
||||
<img class="image" src="900px-Knot_board_01.JPG">
|
||||
<img class="image" src="900px-Knot_board_02.JPG">
|
||||
<img class="image" src="900px-Knot_board_03.JPG">
|
||||
<img class="image" src="900px-Knot_board_05.JPG">
|
After Width: | Height: | Size: 444 KiB |
After Width: | Height: | Size: 450 KiB |
After Width: | Height: | Size: 453 KiB |
After Width: | Height: | Size: 441 KiB |
@ -0,0 +1,4 @@
|
||||
<img class="image" src="IMG_8189.JPG">
|
||||
<img class="image" src="IMG_8192.JPG">
|
||||
<img class="image" src="IMG_8190.JPG">
|
||||
<img class="image" src="IMG_8193.JPG">
|
@ -0,0 +1 @@
|
||||
<img class="image" src="network_of_possibilities.jpg">
|
After Width: | Height: | Size: 760 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 195 KiB |
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 237 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 905 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 266 KiB |
After Width: | Height: | Size: 261 KiB |
After Width: | Height: | Size: 279 KiB |
After Width: | Height: | Size: 277 KiB |
After Width: | Height: | Size: 181 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 187 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 180 KiB |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 199 KiB |
@ -0,0 +1,58 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Network Drawings</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="/readings/stylesheet.css" media="screen"/>
|
||||
</head>
|
||||
<body>
|
||||
<img class="image" src="Knot_board_drawing_01.jpg">
|
||||
<p>Knot board drawing, no.1</p>
|
||||
<img class="image" src="Knot_board_drawing_02.jpg">
|
||||
<p>Knot board drawing, no.2</p>
|
||||
<img class="image" src="gps_trilateration.jpg">
|
||||
<p>GPS trilateration</p>
|
||||
<img class="image" src="knot_scale_times_four.jpg">
|
||||
<p>GPS knot scale</p>
|
||||
<img class="image" src="unravelled_knot_01.jpg">
|
||||
<p>Unravelled knot, no.1</p>
|
||||
<img class="image" src="unravelled_knot_02.jpg">
|
||||
<p>Unravelled knot, no.2</p>
|
||||
<img class="image" src="unravelled_knot_03.jpg">
|
||||
<p>Unravelled knot, no.3</p>
|
||||
<img class="image" src="Knot_board_lines_01.jpg">
|
||||
<p>Knot board lines, no.1</p>
|
||||
<img class="image" src="big_dots_knots_01.jpg">
|
||||
<p>Atomised knot, no.1</p>
|
||||
<img class="image" src="big_dots_knots_02.jpg">
|
||||
<p>Atomised knot, no.2</p>
|
||||
<img class="image" src="big_dots_knots_03.jpg">
|
||||
<p>Atomised knot, no.3</p>
|
||||
<img class="image" src="big_dots_knots_04.jpg">
|
||||
<p>Atomised knot, no.4</p>
|
||||
<img class="image" src="ring_wht_topology.jpg">
|
||||
<p>Ring Topology</p>
|
||||
<img class="image" src="bus_wht_topology.jpg">
|
||||
<p>Bus Topology</p>
|
||||
<img class="image" src="mesh_wht_topology.jpg">
|
||||
<p>Mesh Topology</p>
|
||||
<img class="image" src="Knotwork_wht_01.jpg">
|
||||
<p>Knotwork, no.1</p>
|
||||
<img class="image" src="Knotwork_wht_02.jpg">
|
||||
<p>Knotwork, no.2</p>
|
||||
<img class="image" src="Knotwork_wht_03.jpg">
|
||||
<p>Knotwork, no.3</p>
|
||||
<img class="image" src="Knotwork_wht_04.jpg">
|
||||
<p>Knotwork, no.4</p>
|
||||
<img class="image" src="Knotwork_05.jpg">
|
||||
<p>Knotwork, no.5</p>
|
||||
<img class="image" src="Knotwork_06.jpg">
|
||||
<p>Knotwork, no.6</p>
|
||||
<img class="image" src="Knotwork_07.jpg">
|
||||
<p>Knotwork, no.7</p>
|
||||
<img class="image" src="4_inca_quipu_knots.jpg">
|
||||
<p>4 Quipu</p>
|
||||
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 194 KiB |
After Width: | Height: | Size: 583 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 327 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 194 KiB |
After Width: | Height: | Size: 187 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 64 KiB |
@ -0,0 +1,5 @@
|
||||
<p>Various types of network topologies</p>
|
||||
<img class="image" src="network-topology.jpg">
|
||||
<p>Cat's cradle game</p>
|
||||
<img class="image" src="cat's_cradle.jpg">
|
||||
<img class="image" src="cat's_cradle_2.jpg">
|
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 844 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 143 KiB |
@ -0,0 +1,6 @@
|
||||
<img class="image" src="klein_form.png">
|
||||
<img class="image" src="c_g_w_03.png">
|
||||
<img class="image" src="hu-01-baran-on-distributed-communications-1964.png">
|
||||
<img class="image" src="hu-03-antfarm-TruckstopNetwork-recto-1971.png">
|
||||
<img class="image" src="hu-04-SRI-internetwork-diagram-1977.png">
|
||||
<img class="image" src="hu-05-antfarm-MediaVan-mobile-vt-studio-1971.png">
|
After Width: | Height: | Size: 1021 KiB |