@agentrhq/webcmd 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +39 -24
  2. package/cli-manifest.json +2308 -650
  3. package/clis/_shared/site-auth.js +6 -1
  4. package/clis/bigbasket/add-to-cart.js +82 -0
  5. package/clis/bigbasket/bigbasket.test.js +255 -0
  6. package/clis/bigbasket/cart.js +81 -0
  7. package/clis/bigbasket/category.js +30 -0
  8. package/clis/bigbasket/checkout.js +71 -0
  9. package/clis/bigbasket/location.js +30 -0
  10. package/clis/bigbasket/product.js +79 -0
  11. package/clis/bigbasket/search.js +30 -0
  12. package/clis/bigbasket/utils.js +207 -0
  13. package/clis/blinkit/add-to-cart.js +123 -0
  14. package/clis/blinkit/auth.js +99 -0
  15. package/clis/blinkit/blinkit.test.js +168 -0
  16. package/clis/blinkit/cart.js +34 -0
  17. package/clis/blinkit/checkout.js +32 -0
  18. package/clis/blinkit/location.js +29 -0
  19. package/clis/blinkit/place-order.js +78 -0
  20. package/clis/blinkit/product.js +63 -0
  21. package/clis/blinkit/search.js +89 -0
  22. package/clis/blinkit/utils.js +223 -0
  23. package/clis/district/_lib.js +566 -0
  24. package/clis/district/auth.js +49 -0
  25. package/clis/district/checkout.js +348 -0
  26. package/clis/district/listings.js +158 -0
  27. package/clis/district/locations.js +211 -0
  28. package/clis/district/search.js +218 -0
  29. package/clis/district/seats.js +233 -0
  30. package/clis/district/set-location.js +82 -0
  31. package/clis/district/showtimes.js +433 -0
  32. package/clis/practo/appointment.js +21 -0
  33. package/clis/practo/appointments.js +27 -0
  34. package/clis/practo/book-confirm.js +35 -0
  35. package/clis/practo/book-preview.js +24 -0
  36. package/clis/practo/booking-link.js +24 -0
  37. package/clis/practo/cancel.js +29 -0
  38. package/clis/practo/contact.js +21 -0
  39. package/clis/practo/login.js +21 -0
  40. package/clis/practo/practo.test.js +136 -0
  41. package/clis/practo/profile.js +31 -0
  42. package/clis/practo/search.js +30 -0
  43. package/clis/practo/slots.js +19 -0
  44. package/clis/practo/utils.js +374 -0
  45. package/clis/practo/whoami.js +28 -0
  46. package/clis/reddit/popular.js +12 -1
  47. package/clis/reddit/popular.test.js +12 -3
  48. package/clis/zepto/add-to-cart.js +53 -0
  49. package/clis/zepto/auth.js +59 -0
  50. package/clis/zepto/cart.js +23 -0
  51. package/clis/zepto/checkout.js +60 -0
  52. package/clis/zepto/location.js +20 -0
  53. package/clis/zepto/place-order.js +47 -0
  54. package/clis/zepto/product.js +52 -0
  55. package/clis/zepto/search.js +30 -0
  56. package/clis/zepto/utils.js +228 -0
  57. package/clis/zepto/zepto.test.js +238 -0
  58. package/dist/src/browser/bridge.d.ts +1 -0
  59. package/dist/src/browser/bridge.js +1 -1
  60. package/dist/src/browser/page.d.ts +4 -1
  61. package/dist/src/browser/page.js +12 -1
  62. package/dist/src/browser/protocol.d.ts +2 -0
  63. package/dist/src/browser/runtime/local-cloak/actions.js +1 -0
  64. package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +2 -0
  65. package/dist/src/browser/runtime/local-cloak/session-manager.js +12 -2
  66. package/dist/src/browser/runtime/local-cloak/session-manager.test.js +58 -0
  67. package/dist/src/build-manifest.js +1 -0
  68. package/dist/src/build-manifest.test.js +34 -0
  69. package/dist/src/cli.js +111 -28
  70. package/dist/src/discovery.js +1 -0
  71. package/dist/src/engine.test.js +62 -0
  72. package/dist/src/execution.js +1 -1
  73. package/dist/src/generate-release-notes-cli.test.js +55 -1
  74. package/dist/src/manifest-types.d.ts +2 -0
  75. package/dist/src/registry.d.ts +10 -0
  76. package/dist/src/registry.js +5 -3
  77. package/dist/src/registry.test.js +25 -0
  78. package/dist/src/release-notes.d.ts +3 -1
  79. package/dist/src/release-notes.js +44 -1
  80. package/dist/src/release-notes.test.js +39 -1
  81. package/dist/src/runtime.d.ts +2 -0
  82. package/dist/src/runtime.js +1 -0
  83. package/dist/src/skills.d.ts +23 -5
  84. package/dist/src/skills.js +87 -45
  85. package/dist/src/skills.test.js +80 -23
  86. package/package.json +2 -2
  87. package/scripts/generate-release-notes.ts +31 -0
  88. package/skills/smart-search/SKILL.md +156 -0
  89. package/skills/smart-search/references/sources-ai.md +74 -0
  90. package/skills/smart-search/references/sources-info.md +43 -0
  91. package/skills/smart-search/references/sources-media.md +40 -0
  92. package/skills/smart-search/references/sources-other.md +32 -0
  93. package/skills/smart-search/references/sources-shopping.md +21 -0
  94. package/skills/smart-search/references/sources-social.md +36 -0
  95. package/skills/smart-search/references/sources-tech.md +38 -0
  96. package/skills/smart-search/references/sources-travel.md +26 -0
  97. package/skills/webcmd-adapter-author/SKILL.md +10 -0
  98. package/skills/webcmd-adapter-author/references/adapter-template.md +2 -0
  99. package/skills/webcmd-autofix/SKILL.md +8 -0
  100. package/skills/webcmd-sitemap-author/SKILL.md +1 -1
package/cli-manifest.json CHANGED
@@ -2023,6 +2023,228 @@
2023
2023
  "modulePath": "bbc/topic.js",
2024
2024
  "sourceFile": "bbc/topic.js"
2025
2025
  },
2026
+ {
2027
+ "site": "bigbasket",
2028
+ "name": "add-to-cart",
2029
+ "description": "Add a BigBasket product to cart",
2030
+ "access": "write",
2031
+ "domain": "www.bigbasket.com",
2032
+ "strategy": "cookie",
2033
+ "browser": true,
2034
+ "args": [
2035
+ {
2036
+ "name": "product",
2037
+ "type": "str",
2038
+ "required": true,
2039
+ "positional": true,
2040
+ "help": "Product ID or URL"
2041
+ },
2042
+ {
2043
+ "name": "quantity",
2044
+ "type": "int",
2045
+ "default": 1,
2046
+ "required": false,
2047
+ "help": "Quantity to add (max 20)"
2048
+ }
2049
+ ],
2050
+ "columns": [
2051
+ "ok",
2052
+ "product_id",
2053
+ "quantity",
2054
+ "url",
2055
+ "message"
2056
+ ],
2057
+ "type": "js",
2058
+ "modulePath": "bigbasket/add-to-cart.js",
2059
+ "sourceFile": "bigbasket/add-to-cart.js",
2060
+ "navigateBefore": "https://www.bigbasket.com"
2061
+ },
2062
+ {
2063
+ "site": "bigbasket",
2064
+ "name": "cart",
2065
+ "description": "Read BigBasket cart line items",
2066
+ "access": "read",
2067
+ "domain": "www.bigbasket.com",
2068
+ "strategy": "cookie",
2069
+ "browser": true,
2070
+ "args": [],
2071
+ "columns": [
2072
+ "product_id",
2073
+ "title",
2074
+ "quantity",
2075
+ "price",
2076
+ "line_total",
2077
+ "availability",
2078
+ "url"
2079
+ ],
2080
+ "type": "js",
2081
+ "modulePath": "bigbasket/cart.js",
2082
+ "sourceFile": "bigbasket/cart.js",
2083
+ "navigateBefore": "https://www.bigbasket.com"
2084
+ },
2085
+ {
2086
+ "site": "bigbasket",
2087
+ "name": "category",
2088
+ "description": "Read BigBasket category product cards",
2089
+ "access": "read",
2090
+ "domain": "www.bigbasket.com",
2091
+ "strategy": "cookie",
2092
+ "browser": true,
2093
+ "args": [
2094
+ {
2095
+ "name": "category",
2096
+ "type": "str",
2097
+ "required": true,
2098
+ "positional": true,
2099
+ "help": "Category URL or slug"
2100
+ },
2101
+ {
2102
+ "name": "limit",
2103
+ "type": "int",
2104
+ "default": 20,
2105
+ "required": false,
2106
+ "help": "Maximum products to return (max 50)"
2107
+ }
2108
+ ],
2109
+ "columns": [
2110
+ "rank",
2111
+ "product_id",
2112
+ "title",
2113
+ "brand",
2114
+ "pack_size",
2115
+ "price",
2116
+ "mrp",
2117
+ "discount",
2118
+ "availability",
2119
+ "url"
2120
+ ],
2121
+ "type": "js",
2122
+ "modulePath": "bigbasket/category.js",
2123
+ "sourceFile": "bigbasket/category.js",
2124
+ "navigateBefore": "https://www.bigbasket.com"
2125
+ },
2126
+ {
2127
+ "site": "bigbasket",
2128
+ "name": "checkout",
2129
+ "description": "Open BigBasket checkout review without placing an order",
2130
+ "access": "write",
2131
+ "domain": "www.bigbasket.com",
2132
+ "strategy": "cookie",
2133
+ "browser": true,
2134
+ "args": [],
2135
+ "columns": [
2136
+ "ok",
2137
+ "stage",
2138
+ "cart_total",
2139
+ "address_ready",
2140
+ "delivery_ready",
2141
+ "payment_ready",
2142
+ "next_action",
2143
+ "url"
2144
+ ],
2145
+ "type": "js",
2146
+ "modulePath": "bigbasket/checkout.js",
2147
+ "sourceFile": "bigbasket/checkout.js",
2148
+ "navigateBefore": "https://www.bigbasket.com"
2149
+ },
2150
+ {
2151
+ "site": "bigbasket",
2152
+ "name": "location",
2153
+ "description": "Show the selected BigBasket delivery location",
2154
+ "access": "read",
2155
+ "domain": "www.bigbasket.com",
2156
+ "strategy": "cookie",
2157
+ "browser": true,
2158
+ "args": [],
2159
+ "columns": [
2160
+ "selected",
2161
+ "label",
2162
+ "area",
2163
+ "city",
2164
+ "pincode",
2165
+ "source"
2166
+ ],
2167
+ "type": "js",
2168
+ "modulePath": "bigbasket/location.js",
2169
+ "sourceFile": "bigbasket/location.js",
2170
+ "navigateBefore": "https://www.bigbasket.com"
2171
+ },
2172
+ {
2173
+ "site": "bigbasket",
2174
+ "name": "product",
2175
+ "description": "Read BigBasket product details",
2176
+ "access": "read",
2177
+ "domain": "www.bigbasket.com",
2178
+ "strategy": "cookie",
2179
+ "browser": true,
2180
+ "args": [
2181
+ {
2182
+ "name": "product",
2183
+ "type": "str",
2184
+ "required": true,
2185
+ "positional": true,
2186
+ "help": "Product ID or URL"
2187
+ }
2188
+ ],
2189
+ "columns": [
2190
+ "product_id",
2191
+ "title",
2192
+ "brand",
2193
+ "pack_size",
2194
+ "price",
2195
+ "mrp",
2196
+ "discount",
2197
+ "availability",
2198
+ "delivery",
2199
+ "image_url",
2200
+ "url"
2201
+ ],
2202
+ "type": "js",
2203
+ "modulePath": "bigbasket/product.js",
2204
+ "sourceFile": "bigbasket/product.js",
2205
+ "navigateBefore": "https://www.bigbasket.com"
2206
+ },
2207
+ {
2208
+ "site": "bigbasket",
2209
+ "name": "search",
2210
+ "description": "Search BigBasket products",
2211
+ "access": "read",
2212
+ "domain": "www.bigbasket.com",
2213
+ "strategy": "cookie",
2214
+ "browser": true,
2215
+ "args": [
2216
+ {
2217
+ "name": "query",
2218
+ "type": "str",
2219
+ "required": true,
2220
+ "positional": true,
2221
+ "help": "Search query"
2222
+ },
2223
+ {
2224
+ "name": "limit",
2225
+ "type": "int",
2226
+ "default": 20,
2227
+ "required": false,
2228
+ "help": "Maximum products to return (max 50)"
2229
+ }
2230
+ ],
2231
+ "columns": [
2232
+ "rank",
2233
+ "product_id",
2234
+ "title",
2235
+ "brand",
2236
+ "pack_size",
2237
+ "price",
2238
+ "mrp",
2239
+ "discount",
2240
+ "availability",
2241
+ "url"
2242
+ ],
2243
+ "type": "js",
2244
+ "modulePath": "bigbasket/search.js",
2245
+ "sourceFile": "bigbasket/search.js",
2246
+ "navigateBefore": "https://www.bigbasket.com"
2247
+ },
2026
2248
  {
2027
2249
  "site": "binance",
2028
2250
  "name": "asks",
@@ -2371,101 +2593,390 @@
2371
2593
  "sourceFile": "binance/trades.js"
2372
2594
  },
2373
2595
  {
2374
- "site": "bloomberg",
2375
- "name": "businessweek",
2376
- "description": "Bloomberg Businessweek top stories",
2377
- "access": "read",
2378
- "domain": "www.bloomberg.com",
2379
- "strategy": "public",
2596
+ "site": "blinkit",
2597
+ "name": "add-to-cart",
2598
+ "description": "Add a Blinkit product to cart",
2599
+ "access": "write",
2600
+ "domain": "blinkit.com",
2601
+ "strategy": "cookie",
2380
2602
  "browser": true,
2381
2603
  "args": [
2382
2604
  {
2383
- "name": "limit",
2605
+ "name": "productId",
2606
+ "type": "str",
2607
+ "required": true,
2608
+ "positional": true,
2609
+ "help": "Blinkit product id"
2610
+ },
2611
+ {
2612
+ "name": "quantity",
2384
2613
  "type": "int",
2385
2614
  "default": 1,
2386
2615
  "required": false,
2387
- "help": "Number of stories to return (max 20)"
2616
+ "help": "Quantity to add (default 1, max 12)"
2617
+ },
2618
+ {
2619
+ "name": "lat",
2620
+ "type": "str",
2621
+ "required": false,
2622
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2623
+ },
2624
+ {
2625
+ "name": "lon",
2626
+ "type": "str",
2627
+ "required": false,
2628
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2388
2629
  }
2389
2630
  ],
2390
2631
  "columns": [
2391
- "title",
2392
- "summary",
2393
- "link",
2394
- "mediaLinks"
2632
+ "status",
2633
+ "productId",
2634
+ "quantity",
2635
+ "itemCount",
2636
+ "itemsTotal",
2637
+ "payable",
2638
+ "message"
2395
2639
  ],
2396
2640
  "type": "js",
2397
- "modulePath": "bloomberg/businessweek.js",
2398
- "sourceFile": "bloomberg/businessweek.js"
2641
+ "modulePath": "blinkit/add-to-cart.js",
2642
+ "sourceFile": "blinkit/add-to-cart.js",
2643
+ "navigateBefore": false
2399
2644
  },
2400
2645
  {
2401
- "site": "bloomberg",
2402
- "name": "crypto",
2403
- "description": "Bloomberg Crypto top stories (RSS)",
2646
+ "site": "blinkit",
2647
+ "name": "cart",
2648
+ "description": "Show the current Blinkit cart",
2404
2649
  "access": "read",
2405
- "domain": "feeds.bloomberg.com",
2406
- "strategy": "public",
2407
- "browser": false,
2408
- "args": [
2409
- {
2410
- "name": "limit",
2411
- "type": "int",
2412
- "default": 1,
2413
- "required": false,
2414
- "help": "Number of feed items to return (max 20)"
2415
- }
2416
- ],
2650
+ "domain": "blinkit.com",
2651
+ "strategy": "cookie",
2652
+ "browser": true,
2653
+ "args": [],
2417
2654
  "columns": [
2418
- "title",
2419
- "summary",
2420
- "link",
2421
- "mediaLinks"
2655
+ "status",
2656
+ "productId",
2657
+ "name",
2658
+ "variant",
2659
+ "price",
2660
+ "quantity",
2661
+ "total",
2662
+ "itemCount",
2663
+ "payable",
2664
+ "cartState"
2422
2665
  ],
2423
2666
  "type": "js",
2424
- "modulePath": "bloomberg/crypto.js",
2425
- "sourceFile": "bloomberg/crypto.js"
2667
+ "modulePath": "blinkit/cart.js",
2668
+ "sourceFile": "blinkit/cart.js",
2669
+ "navigateBefore": false
2426
2670
  },
2427
2671
  {
2428
- "site": "bloomberg",
2429
- "name": "economics",
2430
- "description": "Bloomberg Economics top stories (RSS)",
2672
+ "site": "blinkit",
2673
+ "name": "checkout",
2674
+ "description": "Review Blinkit checkout totals and blockers without placing an order",
2431
2675
  "access": "read",
2432
- "domain": "feeds.bloomberg.com",
2433
- "strategy": "public",
2434
- "browser": false,
2435
- "args": [
2436
- {
2437
- "name": "limit",
2438
- "type": "int",
2439
- "default": 1,
2440
- "required": false,
2441
- "help": "Number of feed items to return (max 20)"
2442
- }
2443
- ],
2676
+ "domain": "blinkit.com",
2677
+ "strategy": "cookie",
2678
+ "browser": true,
2679
+ "args": [],
2444
2680
  "columns": [
2445
- "title",
2446
- "summary",
2447
- "link",
2448
- "mediaLinks"
2449
- ],
2450
- "type": "js",
2451
- "modulePath": "bloomberg/economics.js",
2452
- "sourceFile": "bloomberg/economics.js"
2681
+ "status",
2682
+ "itemCount",
2683
+ "itemsTotal",
2684
+ "deliveryCharge",
2685
+ "handlingCharge",
2686
+ "payable",
2687
+ "cartState",
2688
+ "checkoutBlocked",
2689
+ "validations"
2690
+ ],
2691
+ "type": "js",
2692
+ "modulePath": "blinkit/checkout.js",
2693
+ "sourceFile": "blinkit/checkout.js",
2694
+ "navigateBefore": false,
2695
+ "defaultWindowMode": "foreground"
2453
2696
  },
2454
2697
  {
2455
- "site": "bloomberg",
2456
- "name": "feeds",
2457
- "description": "List the Bloomberg RSS feed aliases used by the adapter",
2698
+ "site": "blinkit",
2699
+ "name": "location",
2700
+ "description": "Show the selected Blinkit delivery location",
2458
2701
  "access": "read",
2459
- "domain": "feeds.bloomberg.com",
2460
- "strategy": "public",
2461
- "browser": false,
2702
+ "domain": "blinkit.com",
2703
+ "strategy": "cookie",
2704
+ "browser": true,
2462
2705
  "args": [],
2463
2706
  "columns": [
2464
- "name",
2465
- "url"
2707
+ "selected",
2708
+ "label",
2709
+ "area",
2710
+ "city",
2711
+ "pincode",
2712
+ "hasCoordinates",
2713
+ "source"
2466
2714
  ],
2467
2715
  "type": "js",
2468
- "modulePath": "bloomberg/feeds.js",
2716
+ "modulePath": "blinkit/location.js",
2717
+ "sourceFile": "blinkit/location.js",
2718
+ "navigateBefore": "https://blinkit.com"
2719
+ },
2720
+ {
2721
+ "site": "blinkit",
2722
+ "name": "login",
2723
+ "description": "Open Blinkit login and wait until the browser session is authenticated",
2724
+ "access": "write",
2725
+ "domain": "blinkit.com",
2726
+ "strategy": "cookie",
2727
+ "browser": true,
2728
+ "args": [
2729
+ {
2730
+ "name": "timeout",
2731
+ "type": "int",
2732
+ "default": 300,
2733
+ "required": false,
2734
+ "help": "Maximum seconds to wait for the user to finish login"
2735
+ }
2736
+ ],
2737
+ "columns": [
2738
+ "status",
2739
+ "logged_in",
2740
+ "phone",
2741
+ "user_id"
2742
+ ],
2743
+ "type": "js",
2744
+ "modulePath": "blinkit/auth.js",
2745
+ "sourceFile": "blinkit/auth.js",
2746
+ "navigateBefore": false,
2747
+ "siteSession": "persistent",
2748
+ "defaultWindowMode": "foreground"
2749
+ },
2750
+ {
2751
+ "site": "blinkit",
2752
+ "name": "place-order",
2753
+ "description": "Submit the visible Blinkit final order/payment action. Requires --confirm.",
2754
+ "access": "write",
2755
+ "domain": "blinkit.com",
2756
+ "strategy": "cookie",
2757
+ "browser": true,
2758
+ "args": [
2759
+ {
2760
+ "name": "confirm",
2761
+ "type": "bool",
2762
+ "default": false,
2763
+ "required": false,
2764
+ "help": "Required acknowledgement that this may place/pay for a real order"
2765
+ }
2766
+ ],
2767
+ "columns": [
2768
+ "status",
2769
+ "confirmed",
2770
+ "itemCount",
2771
+ "payable",
2772
+ "orderId",
2773
+ "url",
2774
+ "message"
2775
+ ],
2776
+ "type": "js",
2777
+ "modulePath": "blinkit/place-order.js",
2778
+ "sourceFile": "blinkit/place-order.js",
2779
+ "navigateBefore": false,
2780
+ "defaultWindowMode": "foreground"
2781
+ },
2782
+ {
2783
+ "site": "blinkit",
2784
+ "name": "product",
2785
+ "description": "Read Blinkit product details for a delivery location",
2786
+ "access": "read",
2787
+ "domain": "blinkit.com",
2788
+ "strategy": "cookie",
2789
+ "browser": true,
2790
+ "args": [
2791
+ {
2792
+ "name": "productId",
2793
+ "type": "str",
2794
+ "required": true,
2795
+ "positional": true,
2796
+ "help": "Blinkit product id"
2797
+ },
2798
+ {
2799
+ "name": "lat",
2800
+ "type": "str",
2801
+ "required": false,
2802
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2803
+ },
2804
+ {
2805
+ "name": "lon",
2806
+ "type": "str",
2807
+ "required": false,
2808
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2809
+ }
2810
+ ],
2811
+ "columns": [
2812
+ "productId",
2813
+ "name",
2814
+ "brand",
2815
+ "variant",
2816
+ "price",
2817
+ "mrp",
2818
+ "currency",
2819
+ "inventory",
2820
+ "available",
2821
+ "imageUrl",
2822
+ "url"
2823
+ ],
2824
+ "type": "js",
2825
+ "modulePath": "blinkit/product.js",
2826
+ "sourceFile": "blinkit/product.js",
2827
+ "navigateBefore": false
2828
+ },
2829
+ {
2830
+ "site": "blinkit",
2831
+ "name": "search",
2832
+ "description": "Search Blinkit products for a delivery location",
2833
+ "access": "read",
2834
+ "domain": "blinkit.com",
2835
+ "strategy": "cookie",
2836
+ "browser": true,
2837
+ "args": [
2838
+ {
2839
+ "name": "query",
2840
+ "type": "str",
2841
+ "required": true,
2842
+ "positional": true,
2843
+ "help": "Search keyword"
2844
+ },
2845
+ {
2846
+ "name": "limit",
2847
+ "type": "int",
2848
+ "default": 20,
2849
+ "required": false,
2850
+ "help": "Max results (max 48)"
2851
+ },
2852
+ {
2853
+ "name": "lat",
2854
+ "type": "str",
2855
+ "required": false,
2856
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2857
+ },
2858
+ {
2859
+ "name": "lon",
2860
+ "type": "str",
2861
+ "required": false,
2862
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2863
+ }
2864
+ ],
2865
+ "columns": [
2866
+ "rank",
2867
+ "productId",
2868
+ "name",
2869
+ "brand",
2870
+ "variant",
2871
+ "price",
2872
+ "mrp",
2873
+ "currency",
2874
+ "inventory",
2875
+ "available",
2876
+ "imageUrl",
2877
+ "url"
2878
+ ],
2879
+ "type": "js",
2880
+ "modulePath": "blinkit/search.js",
2881
+ "sourceFile": "blinkit/search.js",
2882
+ "navigateBefore": false
2883
+ },
2884
+ {
2885
+ "site": "bloomberg",
2886
+ "name": "businessweek",
2887
+ "description": "Bloomberg Businessweek top stories",
2888
+ "access": "read",
2889
+ "domain": "www.bloomberg.com",
2890
+ "strategy": "public",
2891
+ "browser": true,
2892
+ "args": [
2893
+ {
2894
+ "name": "limit",
2895
+ "type": "int",
2896
+ "default": 1,
2897
+ "required": false,
2898
+ "help": "Number of stories to return (max 20)"
2899
+ }
2900
+ ],
2901
+ "columns": [
2902
+ "title",
2903
+ "summary",
2904
+ "link",
2905
+ "mediaLinks"
2906
+ ],
2907
+ "type": "js",
2908
+ "modulePath": "bloomberg/businessweek.js",
2909
+ "sourceFile": "bloomberg/businessweek.js"
2910
+ },
2911
+ {
2912
+ "site": "bloomberg",
2913
+ "name": "crypto",
2914
+ "description": "Bloomberg Crypto top stories (RSS)",
2915
+ "access": "read",
2916
+ "domain": "feeds.bloomberg.com",
2917
+ "strategy": "public",
2918
+ "browser": false,
2919
+ "args": [
2920
+ {
2921
+ "name": "limit",
2922
+ "type": "int",
2923
+ "default": 1,
2924
+ "required": false,
2925
+ "help": "Number of feed items to return (max 20)"
2926
+ }
2927
+ ],
2928
+ "columns": [
2929
+ "title",
2930
+ "summary",
2931
+ "link",
2932
+ "mediaLinks"
2933
+ ],
2934
+ "type": "js",
2935
+ "modulePath": "bloomberg/crypto.js",
2936
+ "sourceFile": "bloomberg/crypto.js"
2937
+ },
2938
+ {
2939
+ "site": "bloomberg",
2940
+ "name": "economics",
2941
+ "description": "Bloomberg Economics top stories (RSS)",
2942
+ "access": "read",
2943
+ "domain": "feeds.bloomberg.com",
2944
+ "strategy": "public",
2945
+ "browser": false,
2946
+ "args": [
2947
+ {
2948
+ "name": "limit",
2949
+ "type": "int",
2950
+ "default": 1,
2951
+ "required": false,
2952
+ "help": "Number of feed items to return (max 20)"
2953
+ }
2954
+ ],
2955
+ "columns": [
2956
+ "title",
2957
+ "summary",
2958
+ "link",
2959
+ "mediaLinks"
2960
+ ],
2961
+ "type": "js",
2962
+ "modulePath": "bloomberg/economics.js",
2963
+ "sourceFile": "bloomberg/economics.js"
2964
+ },
2965
+ {
2966
+ "site": "bloomberg",
2967
+ "name": "feeds",
2968
+ "description": "List the Bloomberg RSS feed aliases used by the adapter",
2969
+ "access": "read",
2970
+ "domain": "feeds.bloomberg.com",
2971
+ "strategy": "public",
2972
+ "browser": false,
2973
+ "args": [],
2974
+ "columns": [
2975
+ "name",
2976
+ "url"
2977
+ ],
2978
+ "type": "js",
2979
+ "modulePath": "bloomberg/feeds.js",
2469
2980
  "sourceFile": "bloomberg/feeds.js"
2470
2981
  },
2471
2982
  {
@@ -6913,456 +7424,730 @@
6913
7424
  "navigateBefore": true
6914
7425
  },
6915
7426
  {
6916
- "site": "dockerhub",
6917
- "name": "image",
6918
- "description": "Fetch a Docker Hub repository's public metadata (stars, pulls, last updated, status)",
6919
- "access": "read",
6920
- "domain": "hub.docker.com",
6921
- "strategy": "public",
6922
- "browser": false,
7427
+ "site": "district",
7428
+ "name": "checkout",
7429
+ "description": "Select District movie seats and stop at the payment handoff page",
7430
+ "access": "write",
7431
+ "domain": "www.district.in",
7432
+ "strategy": "cookie",
7433
+ "browser": true,
6923
7434
  "args": [
6924
7435
  {
6925
- "name": "image",
7436
+ "name": "show",
6926
7437
  "type": "str",
6927
7438
  "required": true,
6928
7439
  "positional": true,
6929
- "help": "Image name (e.g. \"nginx\", \"library/nginx\", \"bitnami/redis\")"
7440
+ "help": "District seat-layout URL or showId from district showtimes"
7441
+ },
7442
+ {
7443
+ "name": "seats",
7444
+ "type": "str",
7445
+ "required": true,
7446
+ "help": "Comma-separated seat labels to select, e.g. I22,I21"
7447
+ },
7448
+ {
7449
+ "name": "format-id",
7450
+ "type": "str",
7451
+ "required": false,
7452
+ "help": "District formatId from showtimes; required when show is a showId"
7453
+ },
7454
+ {
7455
+ "name": "content-id",
7456
+ "type": "str",
7457
+ "required": false,
7458
+ "help": "District content id; required when show is a showId"
7459
+ },
7460
+ {
7461
+ "name": "timeout",
7462
+ "type": "int",
7463
+ "default": 45,
7464
+ "required": false,
7465
+ "help": "Maximum seconds to wait for selection and review page"
6930
7466
  }
6931
7467
  ],
6932
7468
  "columns": [
6933
- "image",
6934
- "official",
6935
- "stars",
6936
- "pulls",
6937
- "description",
6938
- "lastUpdated",
6939
- "lastModified",
6940
- "registered",
6941
7469
  "status",
6942
- "url"
7470
+ "movie",
7471
+ "cinema",
7472
+ "date",
7473
+ "time",
7474
+ "seats",
7475
+ "ticketCount",
7476
+ "orderAmount",
7477
+ "bookingCharge",
7478
+ "total",
7479
+ "paymentUrl",
7480
+ "showId"
6943
7481
  ],
6944
7482
  "type": "js",
6945
- "modulePath": "dockerhub/image.js",
6946
- "sourceFile": "dockerhub/image.js"
7483
+ "modulePath": "district/checkout.js",
7484
+ "sourceFile": "district/checkout.js",
7485
+ "navigateBefore": false,
7486
+ "siteSession": "persistent",
7487
+ "freshPage": true,
7488
+ "defaultWindowMode": "foreground"
6947
7489
  },
6948
7490
  {
6949
- "site": "dockerhub",
6950
- "name": "search",
6951
- "description": "Search Docker Hub repositories by keyword",
7491
+ "site": "district",
7492
+ "name": "listings",
7493
+ "aliases": [
7494
+ "ls"
7495
+ ],
7496
+ "description": "List public District by Zomato movies, events, and nearby going-out cards",
6952
7497
  "access": "read",
6953
- "domain": "hub.docker.com",
7498
+ "domain": "www.district.in",
6954
7499
  "strategy": "public",
6955
7500
  "browser": false,
6956
7501
  "args": [
6957
7502
  {
6958
- "name": "query",
7503
+ "name": "input",
6959
7504
  "type": "str",
6960
- "required": true,
7505
+ "default": "home",
7506
+ "required": false,
6961
7507
  "positional": true,
6962
- "help": "Search keyword (e.g. \"nginx\", \"bitnami redis\")"
7508
+ "help": "home, movies, events, a district.in URL, or a District path"
6963
7509
  },
6964
7510
  {
6965
7511
  "name": "limit",
6966
7512
  "type": "int",
6967
- "default": 25,
7513
+ "default": 20,
6968
7514
  "required": false,
6969
- "help": "Max repositories (1-100, single Docker Hub page)"
7515
+ "help": "Maximum rows to return (1-100)"
6970
7516
  }
6971
7517
  ],
6972
7518
  "columns": [
6973
7519
  "rank",
6974
- "image",
6975
- "official",
6976
- "stars",
6977
- "pulls",
6978
- "description",
7520
+ "title",
7521
+ "category",
7522
+ "date",
7523
+ "venue",
7524
+ "price",
6979
7525
  "url"
6980
7526
  ],
6981
7527
  "type": "js",
6982
- "modulePath": "dockerhub/search.js",
6983
- "sourceFile": "dockerhub/search.js"
7528
+ "modulePath": "district/listings.js",
7529
+ "sourceFile": "district/listings.js"
6984
7530
  },
6985
7531
  {
6986
- "site": "duckduckgo",
6987
- "name": "search",
6988
- "description": "Search DuckDuckGo",
7532
+ "site": "district",
7533
+ "name": "locations",
7534
+ "aliases": [
7535
+ "location-search"
7536
+ ],
7537
+ "description": "Search District-supported cities, areas, malls, and places for booking filters",
6989
7538
  "access": "read",
6990
- "domain": "html.duckduckgo.com",
7539
+ "domain": "www.district.in",
6991
7540
  "strategy": "public",
6992
- "browser": true,
7541
+ "browser": false,
6993
7542
  "args": [
6994
7543
  {
6995
- "name": "keyword",
7544
+ "name": "query",
6996
7545
  "type": "str",
6997
7546
  "required": true,
6998
7547
  "positional": true,
6999
- "help": "Search query"
7548
+ "help": "City, area, mall, or locality, for example \"bangalore\" or \"indiranagar\""
7000
7549
  },
7001
7550
  {
7002
7551
  "name": "limit",
7003
7552
  "type": "int",
7004
7553
  "default": 10,
7005
7554
  "required": false,
7006
- "help": "Number of results per page (1-10). For multi-page, use --offset"
7007
- },
7008
- {
7009
- "name": "offset",
7010
- "type": "int",
7011
- "default": 0,
7012
- "required": false,
7013
- "help": "Result offset for pagination (0, 10, 20...). Uses XHR POST internally"
7014
- },
7015
- {
7016
- "name": "region",
7017
- "type": "str",
7018
- "required": false,
7019
- "help": "Region code (e.g. jp-jp, us-en, cn-zh). Default: all regions"
7020
- },
7021
- {
7022
- "name": "time",
7023
- "type": "str",
7024
- "required": false,
7025
- "help": "Time range: d (day), w (week), m (month), y (year)"
7555
+ "help": "Maximum location rows to return (1-50)"
7026
7556
  }
7027
7557
  ],
7028
7558
  "columns": [
7029
7559
  "rank",
7030
- "title",
7031
- "url",
7032
- "snippet",
7033
- "displayUrl",
7034
- "icon",
7035
- "resultType"
7560
+ "name",
7561
+ "kind",
7562
+ "city",
7563
+ "state",
7564
+ "cityKey",
7565
+ "cityId",
7566
+ "placeId",
7567
+ "lat",
7568
+ "lng",
7569
+ "distanceKm",
7570
+ "source"
7036
7571
  ],
7037
7572
  "type": "js",
7038
- "modulePath": "duckduckgo/search.js",
7039
- "sourceFile": "duckduckgo/search.js"
7573
+ "modulePath": "district/locations.js",
7574
+ "sourceFile": "district/locations.js"
7040
7575
  },
7041
7576
  {
7042
- "site": "duckduckgo",
7043
- "name": "suggest",
7044
- "description": "DuckDuckGo search suggestions",
7045
- "access": "read",
7046
- "domain": "duckduckgo.com",
7047
- "strategy": "public",
7048
- "browser": false,
7577
+ "site": "district",
7578
+ "name": "login",
7579
+ "description": "Open district login and wait until the browser session is authenticated",
7580
+ "access": "write",
7581
+ "domain": "www.district.in",
7582
+ "strategy": "cookie",
7583
+ "browser": true,
7049
7584
  "args": [
7050
7585
  {
7051
- "name": "keyword",
7052
- "type": "str",
7053
- "required": true,
7054
- "positional": true,
7055
- "help": "Search query prefix"
7056
- },
7057
- {
7058
- "name": "limit",
7586
+ "name": "timeout",
7059
7587
  "type": "int",
7060
- "default": 8,
7588
+ "default": 300,
7061
7589
  "required": false,
7062
- "help": "Max number of suggestions"
7590
+ "help": "Maximum seconds to wait for the user to finish login"
7063
7591
  }
7064
7592
  ],
7065
7593
  "columns": [
7066
- "phrase"
7594
+ "status",
7595
+ "logged_in",
7596
+ "site",
7597
+ "user_id",
7598
+ "name",
7599
+ "phone_number",
7600
+ "email"
7067
7601
  ],
7068
7602
  "type": "js",
7069
- "modulePath": "duckduckgo/suggest.js",
7070
- "sourceFile": "duckduckgo/suggest.js"
7603
+ "modulePath": "district/auth.js",
7604
+ "sourceFile": "district/auth.js",
7605
+ "navigateBefore": false,
7606
+ "siteSession": "persistent",
7607
+ "defaultWindowMode": "foreground"
7071
7608
  },
7072
7609
  {
7073
- "site": "endoflife",
7074
- "name": "product",
7075
- "description": "Release cycles + EOL / LTS / support dates for one product on endoflife.date",
7610
+ "site": "district",
7611
+ "name": "search",
7612
+ "aliases": [
7613
+ "s"
7614
+ ],
7615
+ "description": "Search District by Zomato across movies, events, dining, stores, activities, and play",
7076
7616
  "access": "read",
7077
- "domain": "endoflife.date",
7617
+ "domain": "www.district.in",
7078
7618
  "strategy": "public",
7079
7619
  "browser": false,
7080
7620
  "args": [
7081
7621
  {
7082
- "name": "product",
7083
- "type": "string",
7622
+ "name": "query",
7623
+ "type": "str",
7084
7624
  "required": true,
7085
7625
  "positional": true,
7086
- "help": "endoflife.date product slug (e.g. \"nodejs\", \"python\", \"ubuntu\")"
7626
+ "help": "Search query, for example \"hamlet\" or \"arijit\""
7627
+ },
7628
+ {
7629
+ "name": "limit",
7630
+ "type": "int",
7631
+ "default": 20,
7632
+ "required": false,
7633
+ "help": "Maximum rows to return (1-100)"
7634
+ },
7635
+ {
7636
+ "name": "tab",
7637
+ "type": "str",
7638
+ "default": "all",
7639
+ "required": false,
7640
+ "help": "Search tab: all, dining, events, movies, stores, activities, or play"
7087
7641
  }
7088
7642
  ],
7089
7643
  "columns": [
7090
- "product",
7091
- "cycle",
7092
- "releaseDate",
7093
- "latest",
7094
- "latestReleaseDate",
7095
- "lts",
7096
- "support",
7097
- "eol",
7098
- "extendedSupport",
7099
- "eolStatus",
7644
+ "rank",
7645
+ "title",
7646
+ "category",
7647
+ "date",
7648
+ "venue",
7649
+ "price",
7100
7650
  "url"
7101
7651
  ],
7102
7652
  "type": "js",
7103
- "modulePath": "endoflife/product.js",
7104
- "sourceFile": "endoflife/product.js"
7653
+ "modulePath": "district/search.js",
7654
+ "sourceFile": "district/search.js"
7105
7655
  },
7106
7656
  {
7107
- "site": "facebook",
7108
- "name": "add-friend",
7109
- "description": "Send a friend request on Facebook",
7110
- "access": "write",
7111
- "domain": "www.facebook.com",
7657
+ "site": "district",
7658
+ "name": "seats",
7659
+ "description": "List available seats for a District movie showtime",
7660
+ "access": "read",
7661
+ "domain": "www.district.in",
7112
7662
  "strategy": "cookie",
7113
7663
  "browser": true,
7114
7664
  "args": [
7115
7665
  {
7116
- "name": "username",
7666
+ "name": "show",
7117
7667
  "type": "str",
7118
7668
  "required": true,
7119
7669
  "positional": true,
7120
- "help": "Facebook username or profile URL"
7670
+ "help": "District seat-layout URL or showId from district showtimes"
7671
+ },
7672
+ {
7673
+ "name": "format-id",
7674
+ "type": "str",
7675
+ "required": false,
7676
+ "help": "District formatId from showtimes; required when show is a showId"
7677
+ },
7678
+ {
7679
+ "name": "content-id",
7680
+ "type": "str",
7681
+ "required": false,
7682
+ "help": "District content id; required when show is a showId"
7683
+ },
7684
+ {
7685
+ "name": "class",
7686
+ "type": "str",
7687
+ "required": false,
7688
+ "help": "Optional seat class filter, e.g. premium, premium xl, or recliner"
7689
+ },
7690
+ {
7691
+ "name": "count",
7692
+ "type": "int",
7693
+ "required": false,
7694
+ "help": "Number of seats to choose (1-10); without count, seats are listed normally"
7695
+ },
7696
+ {
7697
+ "name": "together",
7698
+ "type": "str",
7699
+ "required": false,
7700
+ "help": "Require selected seats to be adjacent when count is provided"
7701
+ },
7702
+ {
7703
+ "name": "max-price",
7704
+ "type": "float",
7705
+ "required": false,
7706
+ "help": "Maximum price per seat"
7707
+ },
7708
+ {
7709
+ "name": "limit",
7710
+ "type": "int",
7711
+ "default": 100,
7712
+ "required": false,
7713
+ "help": "Maximum seats to return (1-300)"
7714
+ },
7715
+ {
7716
+ "name": "timeout",
7717
+ "type": "int",
7718
+ "default": 30,
7719
+ "required": false,
7720
+ "help": "Maximum seconds to wait for the seat map to render"
7121
7721
  }
7122
7722
  ],
7123
7723
  "columns": [
7724
+ "rank",
7725
+ "seat",
7726
+ "row",
7727
+ "number",
7728
+ "column",
7729
+ "seatClass",
7730
+ "price",
7124
7731
  "status",
7125
- "username"
7732
+ "flags",
7733
+ "showId",
7734
+ "formatId",
7735
+ "url"
7126
7736
  ],
7127
7737
  "type": "js",
7128
- "modulePath": "facebook/add-friend.js",
7129
- "sourceFile": "facebook/add-friend.js",
7130
- "navigateBefore": "https://www.facebook.com"
7738
+ "modulePath": "district/seats.js",
7739
+ "sourceFile": "district/seats.js",
7740
+ "navigateBefore": false,
7741
+ "siteSession": "persistent",
7742
+ "defaultWindowMode": "foreground"
7131
7743
  },
7132
7744
  {
7133
- "site": "facebook",
7134
- "name": "events",
7135
- "description": "Browse Facebook event categories",
7136
- "access": "read",
7137
- "domain": "www.facebook.com",
7745
+ "site": "district",
7746
+ "name": "set-location",
7747
+ "aliases": [
7748
+ "setlocation"
7749
+ ],
7750
+ "description": "Set the District browser session location for movie booking filters",
7751
+ "access": "write",
7752
+ "domain": "www.district.in",
7138
7753
  "strategy": "cookie",
7139
7754
  "browser": true,
7140
7755
  "args": [
7141
7756
  {
7142
- "name": "limit",
7757
+ "name": "location",
7758
+ "type": "str",
7759
+ "required": true,
7760
+ "positional": true,
7761
+ "help": "City, area, mall, or locality, for example \"Bangalore\" or \"Indiranagar\""
7762
+ },
7763
+ {
7764
+ "name": "rank",
7143
7765
  "type": "int",
7144
- "default": 15,
7766
+ "default": 1,
7145
7767
  "required": false,
7146
- "help": "Number of categories"
7768
+ "help": "Pick the Nth District location result (1-20), default: 1"
7769
+ },
7770
+ {
7771
+ "name": "timeout",
7772
+ "type": "int",
7773
+ "default": 45,
7774
+ "required": false,
7775
+ "help": "Maximum seconds to wait for the picker and location change"
7147
7776
  }
7148
7777
  ],
7149
7778
  "columns": [
7150
- "index",
7151
- "name"
7779
+ "status",
7780
+ "name",
7781
+ "city",
7782
+ "state",
7783
+ "cityKey",
7784
+ "cityId",
7785
+ "placeId",
7786
+ "subzoneId",
7787
+ "lat",
7788
+ "lng",
7789
+ "availableTabs",
7790
+ "source"
7152
7791
  ],
7153
7792
  "type": "js",
7154
- "modulePath": "facebook/events.js",
7155
- "sourceFile": "facebook/events.js",
7156
- "navigateBefore": "https://www.facebook.com"
7793
+ "modulePath": "district/set-location.js",
7794
+ "sourceFile": "district/set-location.js",
7795
+ "navigateBefore": false,
7796
+ "siteSession": "persistent",
7797
+ "defaultWindowMode": "foreground"
7157
7798
  },
7158
7799
  {
7159
- "site": "facebook",
7160
- "name": "feed",
7161
- "description": "Get your Facebook news feed",
7800
+ "site": "district",
7801
+ "name": "showtimes",
7802
+ "aliases": [
7803
+ "shows"
7804
+ ],
7805
+ "description": "List District movie showtimes with location, time, cinema, language, price, and format filters",
7162
7806
  "access": "read",
7163
- "domain": "www.facebook.com",
7807
+ "domain": "www.district.in",
7164
7808
  "strategy": "cookie",
7165
7809
  "browser": true,
7166
7810
  "args": [
7167
7811
  {
7168
- "name": "limit",
7169
- "type": "int",
7170
- "default": 10,
7812
+ "name": "movie",
7813
+ "type": "str",
7814
+ "required": true,
7815
+ "positional": true,
7816
+ "help": "Movie name or District movie URL"
7817
+ },
7818
+ {
7819
+ "name": "date",
7820
+ "type": "str",
7171
7821
  "required": false,
7172
- "help": "Number of posts"
7173
- }
7174
- ],
7175
- "columns": [
7176
- "index",
7177
- "author",
7178
- "content",
7179
- "likes",
7180
- "comments",
7181
- "shares"
7182
- ],
7183
- "type": "js",
7184
- "modulePath": "facebook/feed.js",
7185
- "sourceFile": "facebook/feed.js",
7186
- "navigateBefore": false
7187
- },
7188
- {
7189
- "site": "facebook",
7190
- "name": "friends",
7191
- "description": "Get Facebook friend suggestions",
7192
- "access": "read",
7193
- "domain": "www.facebook.com",
7194
- "strategy": "cookie",
7195
- "browser": true,
7196
- "args": [
7822
+ "help": "Show date in YYYY-MM-DD format; defaults to District selected date"
7823
+ },
7824
+ {
7825
+ "name": "city",
7826
+ "type": "str",
7827
+ "required": false,
7828
+ "help": "District city name/key, for example Bangalore or Bengaluru"
7829
+ },
7830
+ {
7831
+ "name": "near",
7832
+ "type": "str",
7833
+ "required": false,
7834
+ "help": "Area, mall, or locality to search near, for example Indiranagar"
7835
+ },
7836
+ {
7837
+ "name": "city-key",
7838
+ "type": "str",
7839
+ "required": false,
7840
+ "help": "Legacy District city key override, for example bengaluru"
7841
+ },
7842
+ {
7843
+ "name": "after",
7844
+ "type": "str",
7845
+ "required": false,
7846
+ "help": "Only shows at or after HH:MM, 24-hour time"
7847
+ },
7848
+ {
7849
+ "name": "before",
7850
+ "type": "str",
7851
+ "required": false,
7852
+ "help": "Only shows at or before HH:MM, 24-hour time"
7853
+ },
7854
+ {
7855
+ "name": "cinema",
7856
+ "type": "str",
7857
+ "required": false,
7858
+ "help": "Filter cinema/theatre name, for example PVR, INOX, Orion"
7859
+ },
7860
+ {
7861
+ "name": "language",
7862
+ "type": "str",
7863
+ "required": false,
7864
+ "help": "Filter movie language, for example English, Hindi, Kannada"
7865
+ },
7866
+ {
7867
+ "name": "max-price",
7868
+ "type": "float",
7869
+ "required": false,
7870
+ "help": "Only shows with at least one ticket class at or below this price"
7871
+ },
7872
+ {
7873
+ "name": "quality",
7874
+ "type": "str",
7875
+ "required": false,
7876
+ "help": "Generic format/quality filter, for example 2D, 3D, IMAX, IMAX 3D, 4DX"
7877
+ },
7197
7878
  {
7198
7879
  "name": "limit",
7199
7880
  "type": "int",
7200
- "default": 10,
7881
+ "default": 50,
7201
7882
  "required": false,
7202
- "help": "Number of friend suggestions"
7883
+ "help": "Maximum showtime rows to return (1-200)"
7203
7884
  }
7204
7885
  ],
7205
7886
  "columns": [
7206
- "index",
7207
- "name",
7208
- "mutual"
7887
+ "rank",
7888
+ "movie",
7889
+ "language",
7890
+ "date",
7891
+ "time",
7892
+ "cinema",
7893
+ "format",
7894
+ "priceRange",
7895
+ "available",
7896
+ "showId",
7897
+ "formatId",
7898
+ "url"
7209
7899
  ],
7210
7900
  "type": "js",
7211
- "modulePath": "facebook/friends.js",
7212
- "sourceFile": "facebook/friends.js",
7213
- "navigateBefore": "https://www.facebook.com"
7901
+ "modulePath": "district/showtimes.js",
7902
+ "sourceFile": "district/showtimes.js",
7903
+ "navigateBefore": false,
7904
+ "siteSession": "persistent",
7905
+ "defaultWindowMode": "foreground"
7214
7906
  },
7215
7907
  {
7216
- "site": "facebook",
7217
- "name": "groups",
7218
- "description": "List your Facebook groups",
7908
+ "site": "district",
7909
+ "name": "whoami",
7910
+ "description": "Show the current logged-in district account",
7219
7911
  "access": "read",
7220
- "domain": "www.facebook.com",
7912
+ "domain": "www.district.in",
7221
7913
  "strategy": "cookie",
7222
7914
  "browser": true,
7223
- "args": [
7224
- {
7225
- "name": "limit",
7226
- "type": "int",
7227
- "default": 20,
7228
- "required": false,
7229
- "help": "Number of groups"
7230
- }
7231
- ],
7915
+ "args": [],
7232
7916
  "columns": [
7233
- "index",
7917
+ "logged_in",
7918
+ "site",
7919
+ "user_id",
7234
7920
  "name",
7235
- "last_post",
7236
- "url"
7921
+ "phone_number",
7922
+ "email"
7237
7923
  ],
7238
7924
  "type": "js",
7239
- "modulePath": "facebook/groups.js",
7240
- "sourceFile": "facebook/groups.js",
7241
- "navigateBefore": "https://www.facebook.com"
7925
+ "modulePath": "district/auth.js",
7926
+ "sourceFile": "district/auth.js",
7927
+ "navigateBefore": false,
7928
+ "siteSession": "persistent"
7242
7929
  },
7243
7930
  {
7244
- "site": "facebook",
7245
- "name": "join-group",
7246
- "description": "Join a Facebook group",
7247
- "access": "write",
7248
- "domain": "www.facebook.com",
7249
- "strategy": "cookie",
7250
- "browser": true,
7931
+ "site": "dockerhub",
7932
+ "name": "image",
7933
+ "description": "Fetch a Docker Hub repository's public metadata (stars, pulls, last updated, status)",
7934
+ "access": "read",
7935
+ "domain": "hub.docker.com",
7936
+ "strategy": "public",
7937
+ "browser": false,
7251
7938
  "args": [
7252
7939
  {
7253
- "name": "group",
7940
+ "name": "image",
7254
7941
  "type": "str",
7255
7942
  "required": true,
7256
7943
  "positional": true,
7257
- "help": "Group ID or URL path (e.g. '1876150192925481' or group name)"
7944
+ "help": "Image name (e.g. \"nginx\", \"library/nginx\", \"bitnami/redis\")"
7258
7945
  }
7259
7946
  ],
7260
7947
  "columns": [
7948
+ "image",
7949
+ "official",
7950
+ "stars",
7951
+ "pulls",
7952
+ "description",
7953
+ "lastUpdated",
7954
+ "lastModified",
7955
+ "registered",
7261
7956
  "status",
7262
- "group"
7957
+ "url"
7263
7958
  ],
7264
7959
  "type": "js",
7265
- "modulePath": "facebook/join-group.js",
7266
- "sourceFile": "facebook/join-group.js",
7267
- "navigateBefore": "https://www.facebook.com"
7960
+ "modulePath": "dockerhub/image.js",
7961
+ "sourceFile": "dockerhub/image.js"
7268
7962
  },
7269
7963
  {
7270
- "site": "facebook",
7271
- "name": "login",
7272
- "description": "Open facebook login and wait until the browser session is authenticated",
7273
- "access": "write",
7274
- "domain": "facebook.com",
7275
- "strategy": "cookie",
7276
- "browser": true,
7964
+ "site": "dockerhub",
7965
+ "name": "search",
7966
+ "description": "Search Docker Hub repositories by keyword",
7967
+ "access": "read",
7968
+ "domain": "hub.docker.com",
7969
+ "strategy": "public",
7970
+ "browser": false,
7277
7971
  "args": [
7278
7972
  {
7279
- "name": "timeout",
7973
+ "name": "query",
7974
+ "type": "str",
7975
+ "required": true,
7976
+ "positional": true,
7977
+ "help": "Search keyword (e.g. \"nginx\", \"bitnami redis\")"
7978
+ },
7979
+ {
7980
+ "name": "limit",
7280
7981
  "type": "int",
7281
- "default": 300,
7982
+ "default": 25,
7282
7983
  "required": false,
7283
- "help": "Maximum seconds to wait for the user to finish login"
7984
+ "help": "Max repositories (1-100, single Docker Hub page)"
7284
7985
  }
7285
7986
  ],
7286
7987
  "columns": [
7287
- "status",
7288
- "logged_in",
7289
- "site",
7290
- "user_id",
7291
- "vanity",
7292
- "profile_url"
7988
+ "rank",
7989
+ "image",
7990
+ "official",
7991
+ "stars",
7992
+ "pulls",
7993
+ "description",
7994
+ "url"
7293
7995
  ],
7294
7996
  "type": "js",
7295
- "modulePath": "facebook/auth.js",
7296
- "sourceFile": "facebook/auth.js",
7297
- "navigateBefore": false,
7298
- "siteSession": "persistent",
7299
- "defaultWindowMode": "foreground"
7997
+ "modulePath": "dockerhub/search.js",
7998
+ "sourceFile": "dockerhub/search.js"
7300
7999
  },
7301
8000
  {
7302
- "site": "facebook",
7303
- "name": "marketplace-inbox",
7304
- "description": "List recent Facebook Marketplace buyer/seller conversations",
8001
+ "site": "duckduckgo",
8002
+ "name": "search",
8003
+ "description": "Search DuckDuckGo",
7305
8004
  "access": "read",
7306
- "domain": "www.facebook.com",
7307
- "strategy": "cookie",
8005
+ "domain": "html.duckduckgo.com",
8006
+ "strategy": "public",
7308
8007
  "browser": true,
7309
8008
  "args": [
8009
+ {
8010
+ "name": "keyword",
8011
+ "type": "str",
8012
+ "required": true,
8013
+ "positional": true,
8014
+ "help": "Search query"
8015
+ },
7310
8016
  {
7311
8017
  "name": "limit",
7312
8018
  "type": "int",
7313
- "default": 20,
8019
+ "default": 10,
7314
8020
  "required": false,
7315
- "help": "Number of conversations to return"
8021
+ "help": "Number of results per page (1-10). For multi-page, use --offset"
8022
+ },
8023
+ {
8024
+ "name": "offset",
8025
+ "type": "int",
8026
+ "default": 0,
8027
+ "required": false,
8028
+ "help": "Result offset for pagination (0, 10, 20...). Uses XHR POST internally"
8029
+ },
8030
+ {
8031
+ "name": "region",
8032
+ "type": "str",
8033
+ "required": false,
8034
+ "help": "Region code (e.g. jp-jp, us-en, cn-zh). Default: all regions"
8035
+ },
8036
+ {
8037
+ "name": "time",
8038
+ "type": "str",
8039
+ "required": false,
8040
+ "help": "Time range: d (day), w (week), m (month), y (year)"
7316
8041
  }
7317
8042
  ],
7318
8043
  "columns": [
7319
- "index",
7320
- "buyer",
7321
- "listing",
8044
+ "rank",
8045
+ "title",
8046
+ "url",
7322
8047
  "snippet",
7323
- "time",
7324
- "unread"
8048
+ "displayUrl",
8049
+ "icon",
8050
+ "resultType"
7325
8051
  ],
7326
8052
  "type": "js",
7327
- "modulePath": "facebook/marketplace-inbox.js",
7328
- "sourceFile": "facebook/marketplace-inbox.js",
7329
- "navigateBefore": "https://www.facebook.com"
8053
+ "modulePath": "duckduckgo/search.js",
8054
+ "sourceFile": "duckduckgo/search.js"
7330
8055
  },
7331
8056
  {
7332
- "site": "facebook",
7333
- "name": "marketplace-listings",
7334
- "description": "List your Facebook Marketplace seller listings",
8057
+ "site": "duckduckgo",
8058
+ "name": "suggest",
8059
+ "description": "DuckDuckGo search suggestions",
7335
8060
  "access": "read",
7336
- "domain": "www.facebook.com",
7337
- "strategy": "cookie",
7338
- "browser": true,
8061
+ "domain": "duckduckgo.com",
8062
+ "strategy": "public",
8063
+ "browser": false,
7339
8064
  "args": [
7340
8065
  {
7341
- "name": "limit",
8066
+ "name": "keyword",
8067
+ "type": "str",
8068
+ "required": true,
8069
+ "positional": true,
8070
+ "help": "Search query prefix"
8071
+ },
8072
+ {
8073
+ "name": "limit",
7342
8074
  "type": "int",
7343
- "default": 20,
8075
+ "default": 8,
7344
8076
  "required": false,
7345
- "help": "Number of listings to return"
8077
+ "help": "Max number of suggestions"
8078
+ }
8079
+ ],
8080
+ "columns": [
8081
+ "phrase"
8082
+ ],
8083
+ "type": "js",
8084
+ "modulePath": "duckduckgo/suggest.js",
8085
+ "sourceFile": "duckduckgo/suggest.js"
8086
+ },
8087
+ {
8088
+ "site": "endoflife",
8089
+ "name": "product",
8090
+ "description": "Release cycles + EOL / LTS / support dates for one product on endoflife.date",
8091
+ "access": "read",
8092
+ "domain": "endoflife.date",
8093
+ "strategy": "public",
8094
+ "browser": false,
8095
+ "args": [
8096
+ {
8097
+ "name": "product",
8098
+ "type": "string",
8099
+ "required": true,
8100
+ "positional": true,
8101
+ "help": "endoflife.date product slug (e.g. \"nodejs\", \"python\", \"ubuntu\")"
8102
+ }
8103
+ ],
8104
+ "columns": [
8105
+ "product",
8106
+ "cycle",
8107
+ "releaseDate",
8108
+ "latest",
8109
+ "latestReleaseDate",
8110
+ "lts",
8111
+ "support",
8112
+ "eol",
8113
+ "extendedSupport",
8114
+ "eolStatus",
8115
+ "url"
8116
+ ],
8117
+ "type": "js",
8118
+ "modulePath": "endoflife/product.js",
8119
+ "sourceFile": "endoflife/product.js"
8120
+ },
8121
+ {
8122
+ "site": "facebook",
8123
+ "name": "add-friend",
8124
+ "description": "Send a friend request on Facebook",
8125
+ "access": "write",
8126
+ "domain": "www.facebook.com",
8127
+ "strategy": "cookie",
8128
+ "browser": true,
8129
+ "args": [
8130
+ {
8131
+ "name": "username",
8132
+ "type": "str",
8133
+ "required": true,
8134
+ "positional": true,
8135
+ "help": "Facebook username or profile URL"
7346
8136
  }
7347
8137
  ],
7348
8138
  "columns": [
7349
- "index",
7350
- "title",
7351
- "price",
7352
8139
  "status",
7353
- "listed",
7354
- "clicks",
7355
- "actions"
8140
+ "username"
7356
8141
  ],
7357
8142
  "type": "js",
7358
- "modulePath": "facebook/marketplace-listings.js",
7359
- "sourceFile": "facebook/marketplace-listings.js",
8143
+ "modulePath": "facebook/add-friend.js",
8144
+ "sourceFile": "facebook/add-friend.js",
7360
8145
  "navigateBefore": "https://www.facebook.com"
7361
8146
  },
7362
8147
  {
7363
8148
  "site": "facebook",
7364
- "name": "memories",
7365
- "description": "Get your Facebook memories (On This Day)",
8149
+ "name": "events",
8150
+ "description": "Browse Facebook event categories",
7366
8151
  "access": "read",
7367
8152
  "domain": "www.facebook.com",
7368
8153
  "strategy": "cookie",
@@ -7371,26 +8156,24 @@
7371
8156
  {
7372
8157
  "name": "limit",
7373
8158
  "type": "int",
7374
- "default": 10,
8159
+ "default": 15,
7375
8160
  "required": false,
7376
- "help": "Number of memories"
8161
+ "help": "Number of categories"
7377
8162
  }
7378
8163
  ],
7379
8164
  "columns": [
7380
8165
  "index",
7381
- "source",
7382
- "content",
7383
- "time"
8166
+ "name"
7384
8167
  ],
7385
8168
  "type": "js",
7386
- "modulePath": "facebook/memories.js",
7387
- "sourceFile": "facebook/memories.js",
8169
+ "modulePath": "facebook/events.js",
8170
+ "sourceFile": "facebook/events.js",
7388
8171
  "navigateBefore": "https://www.facebook.com"
7389
8172
  },
7390
8173
  {
7391
8174
  "site": "facebook",
7392
- "name": "notifications",
7393
- "description": "Get recent Facebook notifications (includes unread / time / url / notif_id / notif_type columns)",
8175
+ "name": "feed",
8176
+ "description": "Get your Facebook news feed",
7394
8177
  "access": "read",
7395
8178
  "domain": "www.facebook.com",
7396
8179
  "strategy": "cookie",
@@ -7399,99 +8182,124 @@
7399
8182
  {
7400
8183
  "name": "limit",
7401
8184
  "type": "int",
7402
- "default": 15,
8185
+ "default": 10,
7403
8186
  "required": false,
7404
- "help": "Number of notifications (1-100)"
8187
+ "help": "Number of posts"
7405
8188
  }
7406
8189
  ],
7407
8190
  "columns": [
7408
8191
  "index",
7409
- "unread",
7410
- "text",
7411
- "time",
7412
- "url",
7413
- "notif_id",
7414
- "notif_type"
8192
+ "author",
8193
+ "content",
8194
+ "likes",
8195
+ "comments",
8196
+ "shares"
7415
8197
  ],
7416
8198
  "type": "js",
7417
- "modulePath": "facebook/notifications.js",
7418
- "sourceFile": "facebook/notifications.js",
8199
+ "modulePath": "facebook/feed.js",
8200
+ "sourceFile": "facebook/feed.js",
7419
8201
  "navigateBefore": false
7420
8202
  },
7421
8203
  {
7422
8204
  "site": "facebook",
7423
- "name": "profile",
7424
- "description": "Get Facebook user/page profile info",
8205
+ "name": "friends",
8206
+ "description": "Get Facebook friend suggestions",
7425
8207
  "access": "read",
7426
8208
  "domain": "www.facebook.com",
7427
8209
  "strategy": "cookie",
7428
8210
  "browser": true,
7429
8211
  "args": [
7430
8212
  {
7431
- "name": "username",
7432
- "type": "str",
7433
- "required": true,
7434
- "positional": true,
7435
- "help": "Facebook username or page name"
8213
+ "name": "limit",
8214
+ "type": "int",
8215
+ "default": 10,
8216
+ "required": false,
8217
+ "help": "Number of friend suggestions"
7436
8218
  }
7437
8219
  ],
7438
8220
  "columns": [
8221
+ "index",
7439
8222
  "name",
7440
- "username",
7441
- "friends",
7442
- "followers",
7443
- "url"
8223
+ "mutual"
7444
8224
  ],
7445
8225
  "type": "js",
7446
- "modulePath": "facebook/profile.js",
7447
- "sourceFile": "facebook/profile.js",
8226
+ "modulePath": "facebook/friends.js",
8227
+ "sourceFile": "facebook/friends.js",
7448
8228
  "navigateBefore": "https://www.facebook.com"
7449
8229
  },
7450
8230
  {
7451
8231
  "site": "facebook",
7452
- "name": "search",
7453
- "description": "Search Facebook for people, pages, or posts",
8232
+ "name": "groups",
8233
+ "description": "List your Facebook groups",
7454
8234
  "access": "read",
7455
8235
  "domain": "www.facebook.com",
7456
8236
  "strategy": "cookie",
7457
8237
  "browser": true,
7458
8238
  "args": [
7459
- {
7460
- "name": "query",
7461
- "type": "str",
7462
- "required": true,
7463
- "positional": true,
7464
- "help": "Search query"
7465
- },
7466
8239
  {
7467
8240
  "name": "limit",
7468
8241
  "type": "int",
7469
- "default": 10,
8242
+ "default": 20,
7470
8243
  "required": false,
7471
- "help": "Number of results"
8244
+ "help": "Number of groups"
7472
8245
  }
7473
8246
  ],
7474
8247
  "columns": [
7475
8248
  "index",
7476
- "title",
7477
- "text",
8249
+ "name",
8250
+ "last_post",
7478
8251
  "url"
7479
8252
  ],
7480
8253
  "type": "js",
7481
- "modulePath": "facebook/search.js",
7482
- "sourceFile": "facebook/search.js",
8254
+ "modulePath": "facebook/groups.js",
8255
+ "sourceFile": "facebook/groups.js",
7483
8256
  "navigateBefore": "https://www.facebook.com"
7484
8257
  },
7485
8258
  {
7486
8259
  "site": "facebook",
7487
- "name": "whoami",
7488
- "description": "Show the current logged-in facebook account",
7489
- "access": "read",
8260
+ "name": "join-group",
8261
+ "description": "Join a Facebook group",
8262
+ "access": "write",
8263
+ "domain": "www.facebook.com",
8264
+ "strategy": "cookie",
8265
+ "browser": true,
8266
+ "args": [
8267
+ {
8268
+ "name": "group",
8269
+ "type": "str",
8270
+ "required": true,
8271
+ "positional": true,
8272
+ "help": "Group ID or URL path (e.g. '1876150192925481' or group name)"
8273
+ }
8274
+ ],
8275
+ "columns": [
8276
+ "status",
8277
+ "group"
8278
+ ],
8279
+ "type": "js",
8280
+ "modulePath": "facebook/join-group.js",
8281
+ "sourceFile": "facebook/join-group.js",
8282
+ "navigateBefore": "https://www.facebook.com"
8283
+ },
8284
+ {
8285
+ "site": "facebook",
8286
+ "name": "login",
8287
+ "description": "Open facebook login and wait until the browser session is authenticated",
8288
+ "access": "write",
7490
8289
  "domain": "facebook.com",
7491
8290
  "strategy": "cookie",
7492
8291
  "browser": true,
7493
- "args": [],
8292
+ "args": [
8293
+ {
8294
+ "name": "timeout",
8295
+ "type": "int",
8296
+ "default": 300,
8297
+ "required": false,
8298
+ "help": "Maximum seconds to wait for the user to finish login"
8299
+ }
8300
+ ],
7494
8301
  "columns": [
8302
+ "status",
7495
8303
  "logged_in",
7496
8304
  "site",
7497
8305
  "user_id",
@@ -7502,41 +8310,248 @@
7502
8310
  "modulePath": "facebook/auth.js",
7503
8311
  "sourceFile": "facebook/auth.js",
7504
8312
  "navigateBefore": false,
7505
- "siteSession": "persistent"
8313
+ "siteSession": "persistent",
8314
+ "defaultWindowMode": "foreground"
7506
8315
  },
7507
8316
  {
7508
- "site": "flathub",
7509
- "name": "app",
7510
- "description": "Full Flathub appstream metadata for an app id (license, categories, latest release)",
8317
+ "site": "facebook",
8318
+ "name": "marketplace-inbox",
8319
+ "description": "List recent Facebook Marketplace buyer/seller conversations",
7511
8320
  "access": "read",
7512
- "domain": "flathub.org",
7513
- "strategy": "public",
7514
- "browser": false,
8321
+ "domain": "www.facebook.com",
8322
+ "strategy": "cookie",
8323
+ "browser": true,
7515
8324
  "args": [
7516
8325
  {
7517
- "name": "appId",
7518
- "type": "str",
7519
- "required": true,
7520
- "positional": true,
7521
- "help": "AppStream id (e.g. \"org.mozilla.firefox\", \"org.gnome.Calculator\")"
8326
+ "name": "limit",
8327
+ "type": "int",
8328
+ "default": 20,
8329
+ "required": false,
8330
+ "help": "Number of conversations to return"
7522
8331
  }
7523
8332
  ],
7524
8333
  "columns": [
7525
- "appId",
7526
- "name",
7527
- "summary",
7528
- "developer",
7529
- "license",
7530
- "isFreeLicense",
7531
- "isEol",
7532
- "categories",
7533
- "keywords",
7534
- "latestVersion",
7535
- "latestReleaseDate",
7536
- "homepage",
7537
- "bugtracker",
7538
- "donation",
7539
- "url"
8334
+ "index",
8335
+ "buyer",
8336
+ "listing",
8337
+ "snippet",
8338
+ "time",
8339
+ "unread"
8340
+ ],
8341
+ "type": "js",
8342
+ "modulePath": "facebook/marketplace-inbox.js",
8343
+ "sourceFile": "facebook/marketplace-inbox.js",
8344
+ "navigateBefore": "https://www.facebook.com"
8345
+ },
8346
+ {
8347
+ "site": "facebook",
8348
+ "name": "marketplace-listings",
8349
+ "description": "List your Facebook Marketplace seller listings",
8350
+ "access": "read",
8351
+ "domain": "www.facebook.com",
8352
+ "strategy": "cookie",
8353
+ "browser": true,
8354
+ "args": [
8355
+ {
8356
+ "name": "limit",
8357
+ "type": "int",
8358
+ "default": 20,
8359
+ "required": false,
8360
+ "help": "Number of listings to return"
8361
+ }
8362
+ ],
8363
+ "columns": [
8364
+ "index",
8365
+ "title",
8366
+ "price",
8367
+ "status",
8368
+ "listed",
8369
+ "clicks",
8370
+ "actions"
8371
+ ],
8372
+ "type": "js",
8373
+ "modulePath": "facebook/marketplace-listings.js",
8374
+ "sourceFile": "facebook/marketplace-listings.js",
8375
+ "navigateBefore": "https://www.facebook.com"
8376
+ },
8377
+ {
8378
+ "site": "facebook",
8379
+ "name": "memories",
8380
+ "description": "Get your Facebook memories (On This Day)",
8381
+ "access": "read",
8382
+ "domain": "www.facebook.com",
8383
+ "strategy": "cookie",
8384
+ "browser": true,
8385
+ "args": [
8386
+ {
8387
+ "name": "limit",
8388
+ "type": "int",
8389
+ "default": 10,
8390
+ "required": false,
8391
+ "help": "Number of memories"
8392
+ }
8393
+ ],
8394
+ "columns": [
8395
+ "index",
8396
+ "source",
8397
+ "content",
8398
+ "time"
8399
+ ],
8400
+ "type": "js",
8401
+ "modulePath": "facebook/memories.js",
8402
+ "sourceFile": "facebook/memories.js",
8403
+ "navigateBefore": "https://www.facebook.com"
8404
+ },
8405
+ {
8406
+ "site": "facebook",
8407
+ "name": "notifications",
8408
+ "description": "Get recent Facebook notifications (includes unread / time / url / notif_id / notif_type columns)",
8409
+ "access": "read",
8410
+ "domain": "www.facebook.com",
8411
+ "strategy": "cookie",
8412
+ "browser": true,
8413
+ "args": [
8414
+ {
8415
+ "name": "limit",
8416
+ "type": "int",
8417
+ "default": 15,
8418
+ "required": false,
8419
+ "help": "Number of notifications (1-100)"
8420
+ }
8421
+ ],
8422
+ "columns": [
8423
+ "index",
8424
+ "unread",
8425
+ "text",
8426
+ "time",
8427
+ "url",
8428
+ "notif_id",
8429
+ "notif_type"
8430
+ ],
8431
+ "type": "js",
8432
+ "modulePath": "facebook/notifications.js",
8433
+ "sourceFile": "facebook/notifications.js",
8434
+ "navigateBefore": false
8435
+ },
8436
+ {
8437
+ "site": "facebook",
8438
+ "name": "profile",
8439
+ "description": "Get Facebook user/page profile info",
8440
+ "access": "read",
8441
+ "domain": "www.facebook.com",
8442
+ "strategy": "cookie",
8443
+ "browser": true,
8444
+ "args": [
8445
+ {
8446
+ "name": "username",
8447
+ "type": "str",
8448
+ "required": true,
8449
+ "positional": true,
8450
+ "help": "Facebook username or page name"
8451
+ }
8452
+ ],
8453
+ "columns": [
8454
+ "name",
8455
+ "username",
8456
+ "friends",
8457
+ "followers",
8458
+ "url"
8459
+ ],
8460
+ "type": "js",
8461
+ "modulePath": "facebook/profile.js",
8462
+ "sourceFile": "facebook/profile.js",
8463
+ "navigateBefore": "https://www.facebook.com"
8464
+ },
8465
+ {
8466
+ "site": "facebook",
8467
+ "name": "search",
8468
+ "description": "Search Facebook for people, pages, or posts",
8469
+ "access": "read",
8470
+ "domain": "www.facebook.com",
8471
+ "strategy": "cookie",
8472
+ "browser": true,
8473
+ "args": [
8474
+ {
8475
+ "name": "query",
8476
+ "type": "str",
8477
+ "required": true,
8478
+ "positional": true,
8479
+ "help": "Search query"
8480
+ },
8481
+ {
8482
+ "name": "limit",
8483
+ "type": "int",
8484
+ "default": 10,
8485
+ "required": false,
8486
+ "help": "Number of results"
8487
+ }
8488
+ ],
8489
+ "columns": [
8490
+ "index",
8491
+ "title",
8492
+ "text",
8493
+ "url"
8494
+ ],
8495
+ "type": "js",
8496
+ "modulePath": "facebook/search.js",
8497
+ "sourceFile": "facebook/search.js",
8498
+ "navigateBefore": "https://www.facebook.com"
8499
+ },
8500
+ {
8501
+ "site": "facebook",
8502
+ "name": "whoami",
8503
+ "description": "Show the current logged-in facebook account",
8504
+ "access": "read",
8505
+ "domain": "facebook.com",
8506
+ "strategy": "cookie",
8507
+ "browser": true,
8508
+ "args": [],
8509
+ "columns": [
8510
+ "logged_in",
8511
+ "site",
8512
+ "user_id",
8513
+ "vanity",
8514
+ "profile_url"
8515
+ ],
8516
+ "type": "js",
8517
+ "modulePath": "facebook/auth.js",
8518
+ "sourceFile": "facebook/auth.js",
8519
+ "navigateBefore": false,
8520
+ "siteSession": "persistent"
8521
+ },
8522
+ {
8523
+ "site": "flathub",
8524
+ "name": "app",
8525
+ "description": "Full Flathub appstream metadata for an app id (license, categories, latest release)",
8526
+ "access": "read",
8527
+ "domain": "flathub.org",
8528
+ "strategy": "public",
8529
+ "browser": false,
8530
+ "args": [
8531
+ {
8532
+ "name": "appId",
8533
+ "type": "str",
8534
+ "required": true,
8535
+ "positional": true,
8536
+ "help": "AppStream id (e.g. \"org.mozilla.firefox\", \"org.gnome.Calculator\")"
8537
+ }
8538
+ ],
8539
+ "columns": [
8540
+ "appId",
8541
+ "name",
8542
+ "summary",
8543
+ "developer",
8544
+ "license",
8545
+ "isFreeLicense",
8546
+ "isEol",
8547
+ "categories",
8548
+ "keywords",
8549
+ "latestVersion",
8550
+ "latestReleaseDate",
8551
+ "homepage",
8552
+ "bugtracker",
8553
+ "donation",
8554
+ "url"
7540
8555
  ],
7541
8556
  "type": "js",
7542
8557
  "modulePath": "flathub/app.js",
@@ -15188,425 +16203,836 @@
15188
16203
  "sourceFile": "paperreview/feedback.js"
15189
16204
  },
15190
16205
  {
15191
- "site": "paperreview",
15192
- "name": "review",
15193
- "description": "Fetch a paperreview.ai review by token",
16206
+ "site": "paperreview",
16207
+ "name": "review",
16208
+ "description": "Fetch a paperreview.ai review by token",
16209
+ "access": "read",
16210
+ "domain": "paperreview.ai",
16211
+ "strategy": "public",
16212
+ "browser": false,
16213
+ "args": [
16214
+ {
16215
+ "name": "token",
16216
+ "type": "str",
16217
+ "required": true,
16218
+ "positional": true,
16219
+ "help": "Review token returned by paperreview.ai"
16220
+ },
16221
+ {
16222
+ "name": "timeout",
16223
+ "type": "int",
16224
+ "default": 30,
16225
+ "required": false,
16226
+ "help": "Max seconds for the overall command (default: 30)"
16227
+ }
16228
+ ],
16229
+ "columns": [
16230
+ "status",
16231
+ "title",
16232
+ "venue",
16233
+ "numerical_score",
16234
+ "has_feedback",
16235
+ "review_url"
16236
+ ],
16237
+ "type": "js",
16238
+ "modulePath": "paperreview/review.js",
16239
+ "sourceFile": "paperreview/review.js"
16240
+ },
16241
+ {
16242
+ "site": "paperreview",
16243
+ "name": "submit",
16244
+ "description": "Submit a PDF to paperreview.ai for review",
16245
+ "access": "write",
16246
+ "domain": "paperreview.ai",
16247
+ "strategy": "public",
16248
+ "browser": false,
16249
+ "args": [
16250
+ {
16251
+ "name": "pdf",
16252
+ "type": "str",
16253
+ "required": true,
16254
+ "positional": true,
16255
+ "help": "Path to the paper PDF"
16256
+ },
16257
+ {
16258
+ "name": "email",
16259
+ "type": "str",
16260
+ "required": true,
16261
+ "help": "Email address for the submission"
16262
+ },
16263
+ {
16264
+ "name": "venue",
16265
+ "type": "str",
16266
+ "required": false,
16267
+ "help": "Optional target venue such as ICLR or NeurIPS"
16268
+ },
16269
+ {
16270
+ "name": "dry-run",
16271
+ "type": "bool",
16272
+ "default": false,
16273
+ "required": false,
16274
+ "help": "Validate the input and stop before remote submission"
16275
+ },
16276
+ {
16277
+ "name": "prepare-only",
16278
+ "type": "bool",
16279
+ "default": false,
16280
+ "required": false,
16281
+ "help": "Request an upload slot but stop before uploading the PDF"
16282
+ },
16283
+ {
16284
+ "name": "timeout",
16285
+ "type": "int",
16286
+ "default": 120,
16287
+ "required": false,
16288
+ "help": "Max seconds for the overall command (default: 120)"
16289
+ }
16290
+ ],
16291
+ "columns": [
16292
+ "status",
16293
+ "file",
16294
+ "email",
16295
+ "venue",
16296
+ "token",
16297
+ "review_url",
16298
+ "message"
16299
+ ],
16300
+ "type": "js",
16301
+ "modulePath": "paperreview/submit.js",
16302
+ "sourceFile": "paperreview/submit.js"
16303
+ },
16304
+ {
16305
+ "site": "pixiv",
16306
+ "name": "detail",
16307
+ "description": "View illustration details (tags, stats, URLs)",
16308
+ "access": "read",
16309
+ "domain": "www.pixiv.net",
16310
+ "strategy": "cookie",
16311
+ "browser": true,
16312
+ "args": [
16313
+ {
16314
+ "name": "id",
16315
+ "type": "str",
16316
+ "required": true,
16317
+ "positional": true,
16318
+ "help": "Illustration ID"
16319
+ }
16320
+ ],
16321
+ "columns": [
16322
+ "illust_id",
16323
+ "title",
16324
+ "author",
16325
+ "type",
16326
+ "pages",
16327
+ "bookmarks",
16328
+ "likes",
16329
+ "views",
16330
+ "tags",
16331
+ "created",
16332
+ "url"
16333
+ ],
16334
+ "type": "js",
16335
+ "modulePath": "pixiv/detail.js",
16336
+ "sourceFile": "pixiv/detail.js",
16337
+ "navigateBefore": "https://www.pixiv.net"
16338
+ },
16339
+ {
16340
+ "site": "pixiv",
16341
+ "name": "download",
16342
+ "description": "Download illustration images from Pixiv",
16343
+ "access": "read",
16344
+ "domain": "www.pixiv.net",
16345
+ "strategy": "cookie",
16346
+ "browser": true,
16347
+ "args": [
16348
+ {
16349
+ "name": "illust-id",
16350
+ "type": "str",
16351
+ "required": true,
16352
+ "positional": true,
16353
+ "help": "Illustration ID"
16354
+ },
16355
+ {
16356
+ "name": "output",
16357
+ "type": "str",
16358
+ "default": "./pixiv-downloads",
16359
+ "required": false,
16360
+ "help": "Output directory"
16361
+ }
16362
+ ],
16363
+ "columns": [
16364
+ "index",
16365
+ "type",
16366
+ "status",
16367
+ "size"
16368
+ ],
16369
+ "type": "js",
16370
+ "modulePath": "pixiv/download.js",
16371
+ "sourceFile": "pixiv/download.js",
16372
+ "navigateBefore": "https://www.pixiv.net"
16373
+ },
16374
+ {
16375
+ "site": "pixiv",
16376
+ "name": "illusts",
16377
+ "description": "List a Pixiv artist's illustrations",
16378
+ "access": "read",
16379
+ "domain": "www.pixiv.net",
16380
+ "strategy": "cookie",
16381
+ "browser": true,
16382
+ "args": [
16383
+ {
16384
+ "name": "user-id",
16385
+ "type": "str",
16386
+ "required": true,
16387
+ "positional": true,
16388
+ "help": "Pixiv user ID"
16389
+ },
16390
+ {
16391
+ "name": "limit",
16392
+ "type": "int",
16393
+ "default": 20,
16394
+ "required": false,
16395
+ "help": "Number of results"
16396
+ }
16397
+ ],
16398
+ "columns": [
16399
+ "rank",
16400
+ "title",
16401
+ "illust_id",
16402
+ "pages",
16403
+ "bookmarks",
16404
+ "tags",
16405
+ "created",
16406
+ "url"
16407
+ ],
16408
+ "type": "js",
16409
+ "modulePath": "pixiv/illusts.js",
16410
+ "sourceFile": "pixiv/illusts.js",
16411
+ "navigateBefore": "https://www.pixiv.net"
16412
+ },
16413
+ {
16414
+ "site": "pixiv",
16415
+ "name": "login",
16416
+ "description": "Open pixiv login and wait until the browser session is authenticated",
16417
+ "access": "write",
16418
+ "domain": "pixiv.net",
16419
+ "strategy": "cookie",
16420
+ "browser": true,
16421
+ "args": [
16422
+ {
16423
+ "name": "timeout",
16424
+ "type": "int",
16425
+ "default": 300,
16426
+ "required": false,
16427
+ "help": "Maximum seconds to wait for the user to finish login"
16428
+ }
16429
+ ],
16430
+ "columns": [
16431
+ "status",
16432
+ "logged_in",
16433
+ "site",
16434
+ "user_id",
16435
+ "name"
16436
+ ],
16437
+ "type": "js",
16438
+ "modulePath": "pixiv/auth.js",
16439
+ "sourceFile": "pixiv/auth.js",
16440
+ "navigateBefore": false,
16441
+ "siteSession": "persistent",
16442
+ "defaultWindowMode": "foreground"
16443
+ },
16444
+ {
16445
+ "site": "pixiv",
16446
+ "name": "ranking",
16447
+ "description": "Pixiv illustration rankings (daily/weekly/monthly)",
16448
+ "access": "read",
16449
+ "domain": "www.pixiv.net",
16450
+ "strategy": "cookie",
16451
+ "browser": true,
16452
+ "args": [
16453
+ {
16454
+ "name": "mode",
16455
+ "type": "str",
16456
+ "default": "daily",
16457
+ "required": false,
16458
+ "help": "Ranking mode",
16459
+ "choices": [
16460
+ "daily",
16461
+ "weekly",
16462
+ "monthly",
16463
+ "rookie",
16464
+ "original",
16465
+ "male",
16466
+ "female",
16467
+ "daily_r18",
16468
+ "weekly_r18"
16469
+ ]
16470
+ },
16471
+ {
16472
+ "name": "page",
16473
+ "type": "int",
16474
+ "default": 1,
16475
+ "required": false,
16476
+ "help": "Page number"
16477
+ },
16478
+ {
16479
+ "name": "limit",
16480
+ "type": "int",
16481
+ "default": 20,
16482
+ "required": false,
16483
+ "help": "Number of results"
16484
+ }
16485
+ ],
16486
+ "columns": [
16487
+ "rank",
16488
+ "title",
16489
+ "author",
16490
+ "user_id",
16491
+ "illust_id",
16492
+ "pages",
16493
+ "bookmarks",
16494
+ "url"
16495
+ ],
16496
+ "type": "js",
16497
+ "modulePath": "pixiv/ranking.js",
16498
+ "sourceFile": "pixiv/ranking.js",
16499
+ "navigateBefore": "https://www.pixiv.net"
16500
+ },
16501
+ {
16502
+ "site": "pixiv",
16503
+ "name": "search",
16504
+ "description": "Search Pixiv illustrations by keyword",
16505
+ "access": "read",
16506
+ "domain": "www.pixiv.net",
16507
+ "strategy": "cookie",
16508
+ "browser": true,
16509
+ "args": [
16510
+ {
16511
+ "name": "query",
16512
+ "type": "str",
16513
+ "required": true,
16514
+ "positional": true,
16515
+ "help": "Search keyword or tag"
16516
+ },
16517
+ {
16518
+ "name": "limit",
16519
+ "type": "int",
16520
+ "default": 20,
16521
+ "required": false,
16522
+ "help": "Number of results"
16523
+ },
16524
+ {
16525
+ "name": "order",
16526
+ "type": "str",
16527
+ "default": "date_d",
16528
+ "required": false,
16529
+ "help": "Sort order",
16530
+ "choices": [
16531
+ "date_d",
16532
+ "date",
16533
+ "popular_d",
16534
+ "popular_male_d",
16535
+ "popular_female_d"
16536
+ ]
16537
+ },
16538
+ {
16539
+ "name": "mode",
16540
+ "type": "str",
16541
+ "default": "all",
16542
+ "required": false,
16543
+ "help": "Search mode",
16544
+ "choices": [
16545
+ "all",
16546
+ "safe",
16547
+ "r18"
16548
+ ]
16549
+ },
16550
+ {
16551
+ "name": "page",
16552
+ "type": "int",
16553
+ "default": 1,
16554
+ "required": false,
16555
+ "help": "Page number"
16556
+ }
16557
+ ],
16558
+ "columns": [
16559
+ "rank",
16560
+ "title",
16561
+ "author",
16562
+ "user_id",
16563
+ "illust_id",
16564
+ "pages",
16565
+ "bookmarks",
16566
+ "tags",
16567
+ "url"
16568
+ ],
16569
+ "type": "js",
16570
+ "modulePath": "pixiv/search.js",
16571
+ "sourceFile": "pixiv/search.js",
16572
+ "navigateBefore": "https://www.pixiv.net"
16573
+ },
16574
+ {
16575
+ "site": "pixiv",
16576
+ "name": "user",
16577
+ "description": "View Pixiv artist profile",
16578
+ "access": "read",
16579
+ "domain": "www.pixiv.net",
16580
+ "strategy": "cookie",
16581
+ "browser": true,
16582
+ "args": [
16583
+ {
16584
+ "name": "uid",
16585
+ "type": "str",
16586
+ "required": true,
16587
+ "positional": true,
16588
+ "help": "Pixiv user ID"
16589
+ }
16590
+ ],
16591
+ "columns": [
16592
+ "user_id",
16593
+ "name",
16594
+ "premium",
16595
+ "following",
16596
+ "illusts",
16597
+ "manga",
16598
+ "novels",
16599
+ "comment",
16600
+ "url"
16601
+ ],
16602
+ "type": "js",
16603
+ "modulePath": "pixiv/user.js",
16604
+ "sourceFile": "pixiv/user.js",
16605
+ "navigateBefore": "https://www.pixiv.net"
16606
+ },
16607
+ {
16608
+ "site": "pixiv",
16609
+ "name": "whoami",
16610
+ "description": "Show the current logged-in pixiv account",
16611
+ "access": "read",
16612
+ "domain": "pixiv.net",
16613
+ "strategy": "cookie",
16614
+ "browser": true,
16615
+ "args": [],
16616
+ "columns": [
16617
+ "logged_in",
16618
+ "site",
16619
+ "user_id",
16620
+ "name"
16621
+ ],
16622
+ "type": "js",
16623
+ "modulePath": "pixiv/auth.js",
16624
+ "sourceFile": "pixiv/auth.js",
16625
+ "navigateBefore": false,
16626
+ "siteSession": "persistent"
16627
+ },
16628
+ {
16629
+ "site": "practo",
16630
+ "name": "appointment",
16631
+ "description": "Show logged-in Practo Drive appointment details",
15194
16632
  "access": "read",
15195
- "domain": "paperreview.ai",
15196
- "strategy": "public",
15197
- "browser": false,
16633
+ "domain": "drive.practo.com",
16634
+ "strategy": "cookie",
16635
+ "browser": true,
15198
16636
  "args": [
15199
16637
  {
15200
- "name": "token",
16638
+ "name": "appointment_id",
15201
16639
  "type": "str",
15202
16640
  "required": true,
15203
16641
  "positional": true,
15204
- "help": "Review token returned by paperreview.ai"
15205
- },
15206
- {
15207
- "name": "timeout",
15208
- "type": "int",
15209
- "default": 30,
15210
- "required": false,
15211
- "help": "Max seconds for the overall command (default: 30)"
16642
+ "help": "Appointment id from `practo appointments`"
15212
16643
  }
15213
16644
  ],
15214
16645
  "columns": [
16646
+ "appointment_id",
15215
16647
  "status",
15216
- "title",
15217
- "venue",
15218
- "numerical_score",
15219
- "has_feedback",
15220
- "review_url"
16648
+ "summary"
15221
16649
  ],
15222
16650
  "type": "js",
15223
- "modulePath": "paperreview/review.js",
15224
- "sourceFile": "paperreview/review.js"
16651
+ "modulePath": "practo/appointment.js",
16652
+ "sourceFile": "practo/appointment.js",
16653
+ "navigateBefore": false,
16654
+ "siteSession": "persistent"
15225
16655
  },
15226
16656
  {
15227
- "site": "paperreview",
15228
- "name": "submit",
15229
- "description": "Submit a PDF to paperreview.ai for review",
16657
+ "site": "practo",
16658
+ "name": "appointments",
16659
+ "description": "List logged-in Practo Drive appointments",
16660
+ "access": "read",
16661
+ "domain": "drive.practo.com",
16662
+ "strategy": "cookie",
16663
+ "browser": true,
16664
+ "args": [],
16665
+ "columns": [
16666
+ "appointment_id",
16667
+ "doctor",
16668
+ "practice",
16669
+ "time",
16670
+ "status"
16671
+ ],
16672
+ "type": "js",
16673
+ "modulePath": "practo/appointments.js",
16674
+ "sourceFile": "practo/appointments.js",
16675
+ "navigateBefore": false,
16676
+ "siteSession": "persistent"
16677
+ },
16678
+ {
16679
+ "site": "practo",
16680
+ "name": "book-confirm",
16681
+ "description": "Confirm a Practo clinic visit booking after explicit confirmation",
15230
16682
  "access": "write",
15231
- "domain": "paperreview.ai",
15232
- "strategy": "public",
15233
- "browser": false,
16683
+ "domain": "www.practo.com",
16684
+ "strategy": "cookie",
16685
+ "browser": true,
15234
16686
  "args": [
15235
16687
  {
15236
- "name": "pdf",
16688
+ "name": "practice_doctor_id",
15237
16689
  "type": "str",
15238
16690
  "required": true,
15239
16691
  "positional": true,
15240
- "help": "Path to the paper PDF"
16692
+ "help": "Practo practice_doctor_id"
15241
16693
  },
15242
16694
  {
15243
- "name": "email",
16695
+ "name": "time",
15244
16696
  "type": "str",
15245
16697
  "required": true,
15246
- "help": "Email address for the submission"
16698
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
15247
16699
  },
15248
16700
  {
15249
- "name": "venue",
16701
+ "name": "profile-url",
15250
16702
  "type": "str",
15251
16703
  "required": false,
15252
- "help": "Optional target venue such as ICLR or NeurIPS"
15253
- },
15254
- {
15255
- "name": "dry-run",
15256
- "type": "bool",
15257
- "default": false,
15258
- "required": false,
15259
- "help": "Validate the input and stop before remote submission"
16704
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
15260
16705
  },
15261
16706
  {
15262
- "name": "prepare-only",
15263
- "type": "bool",
16707
+ "name": "confirm",
16708
+ "type": "boolean",
15264
16709
  "default": false,
15265
16710
  "required": false,
15266
- "help": "Request an upload slot but stop before uploading the PDF"
15267
- },
15268
- {
15269
- "name": "timeout",
15270
- "type": "int",
15271
- "default": 120,
15272
- "required": false,
15273
- "help": "Max seconds for the overall command (default: 120)"
16711
+ "help": "Required. Set --confirm true to create the appointment."
15274
16712
  }
15275
16713
  ],
15276
16714
  "columns": [
15277
16715
  "status",
15278
- "file",
15279
- "email",
15280
- "venue",
15281
- "token",
15282
- "review_url",
15283
- "message"
16716
+ "practice_doctor_id",
16717
+ "time",
16718
+ "url"
15284
16719
  ],
15285
16720
  "type": "js",
15286
- "modulePath": "paperreview/submit.js",
15287
- "sourceFile": "paperreview/submit.js"
16721
+ "modulePath": "practo/book-confirm.js",
16722
+ "sourceFile": "practo/book-confirm.js",
16723
+ "navigateBefore": false,
16724
+ "siteSession": "persistent",
16725
+ "defaultWindowMode": "foreground"
15288
16726
  },
15289
16727
  {
15290
- "site": "pixiv",
15291
- "name": "detail",
15292
- "description": "View illustration details (tags, stats, URLs)",
16728
+ "site": "practo",
16729
+ "name": "book-preview",
16730
+ "description": "Preview Practo booking details for a selected slot without confirming",
15293
16731
  "access": "read",
15294
- "domain": "www.pixiv.net",
16732
+ "domain": "www.practo.com",
15295
16733
  "strategy": "cookie",
15296
16734
  "browser": true,
15297
16735
  "args": [
15298
16736
  {
15299
- "name": "id",
16737
+ "name": "practice_doctor_id",
15300
16738
  "type": "str",
15301
16739
  "required": true,
15302
16740
  "positional": true,
15303
- "help": "Illustration ID"
16741
+ "help": "Practo practice_doctor_id"
16742
+ },
16743
+ {
16744
+ "name": "time",
16745
+ "type": "str",
16746
+ "required": true,
16747
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16748
+ },
16749
+ {
16750
+ "name": "profile-url",
16751
+ "type": "str",
16752
+ "required": false,
16753
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
15304
16754
  }
15305
16755
  ],
15306
16756
  "columns": [
15307
- "illust_id",
15308
- "title",
15309
- "author",
15310
- "type",
15311
- "pages",
15312
- "bookmarks",
15313
- "likes",
15314
- "views",
15315
- "tags",
15316
- "created",
15317
- "url"
16757
+ "practice_doctor_id",
16758
+ "time",
16759
+ "amount",
16760
+ "prepaid",
16761
+ "payment_mode",
16762
+ "requires_payment",
16763
+ "confirm_button",
16764
+ "booking_url"
15318
16765
  ],
15319
16766
  "type": "js",
15320
- "modulePath": "pixiv/detail.js",
15321
- "sourceFile": "pixiv/detail.js",
15322
- "navigateBefore": "https://www.pixiv.net"
16767
+ "modulePath": "practo/book-preview.js",
16768
+ "sourceFile": "practo/book-preview.js",
16769
+ "navigateBefore": false,
16770
+ "siteSession": "persistent"
15323
16771
  },
15324
16772
  {
15325
- "site": "pixiv",
15326
- "name": "download",
15327
- "description": "Download illustration images from Pixiv",
16773
+ "site": "practo",
16774
+ "name": "booking-link",
16775
+ "description": "Build a Practo booking URL for a selected slot without confirming it",
15328
16776
  "access": "read",
15329
- "domain": "www.pixiv.net",
16777
+ "domain": "www.practo.com",
15330
16778
  "strategy": "cookie",
15331
16779
  "browser": true,
15332
16780
  "args": [
15333
16781
  {
15334
- "name": "illust-id",
16782
+ "name": "practice_doctor_id",
15335
16783
  "type": "str",
15336
16784
  "required": true,
15337
16785
  "positional": true,
15338
- "help": "Illustration ID"
16786
+ "help": "Practo practice_doctor_id"
15339
16787
  },
15340
16788
  {
15341
- "name": "output",
16789
+ "name": "time",
16790
+ "type": "str",
16791
+ "required": true,
16792
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16793
+ },
16794
+ {
16795
+ "name": "profile-url",
15342
16796
  "type": "str",
15343
- "default": "./pixiv-downloads",
15344
16797
  "required": false,
15345
- "help": "Output directory"
16798
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
15346
16799
  }
15347
16800
  ],
15348
16801
  "columns": [
15349
- "index",
15350
- "type",
15351
- "status",
15352
- "size"
16802
+ "practice_doctor_id",
16803
+ "time",
16804
+ "booking_url"
15353
16805
  ],
15354
16806
  "type": "js",
15355
- "modulePath": "pixiv/download.js",
15356
- "sourceFile": "pixiv/download.js",
15357
- "navigateBefore": "https://www.pixiv.net"
16807
+ "modulePath": "practo/booking-link.js",
16808
+ "sourceFile": "practo/booking-link.js",
16809
+ "navigateBefore": false
15358
16810
  },
15359
16811
  {
15360
- "site": "pixiv",
15361
- "name": "illusts",
15362
- "description": "List a Pixiv artist's illustrations",
15363
- "access": "read",
15364
- "domain": "www.pixiv.net",
16812
+ "site": "practo",
16813
+ "name": "cancel",
16814
+ "description": "Cancel a logged-in Practo Drive appointment after explicit confirmation",
16815
+ "access": "write",
16816
+ "domain": "drive.practo.com",
15365
16817
  "strategy": "cookie",
15366
16818
  "browser": true,
15367
16819
  "args": [
15368
16820
  {
15369
- "name": "user-id",
16821
+ "name": "appointment_id",
15370
16822
  "type": "str",
15371
16823
  "required": true,
15372
16824
  "positional": true,
15373
- "help": "Pixiv user ID"
16825
+ "help": "Appointment id from `practo appointments`"
15374
16826
  },
15375
16827
  {
15376
- "name": "limit",
15377
- "type": "int",
15378
- "default": 20,
16828
+ "name": "confirm",
16829
+ "type": "boolean",
16830
+ "default": false,
15379
16831
  "required": false,
15380
- "help": "Number of results"
16832
+ "help": "Required. Set --confirm true to cancel the appointment."
15381
16833
  }
15382
16834
  ],
15383
16835
  "columns": [
15384
- "rank",
15385
- "title",
15386
- "illust_id",
15387
- "pages",
15388
- "bookmarks",
15389
- "tags",
15390
- "created",
15391
- "url"
16836
+ "status",
16837
+ "appointment_id"
15392
16838
  ],
15393
16839
  "type": "js",
15394
- "modulePath": "pixiv/illusts.js",
15395
- "sourceFile": "pixiv/illusts.js",
15396
- "navigateBefore": "https://www.pixiv.net"
16840
+ "modulePath": "practo/cancel.js",
16841
+ "sourceFile": "practo/cancel.js",
16842
+ "navigateBefore": false,
16843
+ "siteSession": "persistent",
16844
+ "defaultWindowMode": "foreground"
15397
16845
  },
15398
16846
  {
15399
- "site": "pixiv",
15400
- "name": "login",
15401
- "description": "Open pixiv login and wait until the browser session is authenticated",
15402
- "access": "write",
15403
- "domain": "pixiv.net",
16847
+ "site": "practo",
16848
+ "name": "contact",
16849
+ "description": "Get Practo virtual contact number for a practice_doctor_id",
16850
+ "access": "read",
16851
+ "domain": "www.practo.com",
15404
16852
  "strategy": "cookie",
15405
16853
  "browser": true,
15406
16854
  "args": [
15407
16855
  {
15408
- "name": "timeout",
15409
- "type": "int",
15410
- "default": 300,
15411
- "required": false,
15412
- "help": "Maximum seconds to wait for the user to finish login"
16856
+ "name": "practice_doctor_id",
16857
+ "type": "str",
16858
+ "required": true,
16859
+ "positional": true,
16860
+ "help": "Practo practice_doctor_id from search results"
15413
16861
  }
15414
16862
  ],
16863
+ "columns": [
16864
+ "practice_doctor_id",
16865
+ "phone",
16866
+ "raw"
16867
+ ],
16868
+ "type": "js",
16869
+ "modulePath": "practo/contact.js",
16870
+ "sourceFile": "practo/contact.js",
16871
+ "navigateBefore": false
16872
+ },
16873
+ {
16874
+ "site": "practo",
16875
+ "name": "login",
16876
+ "description": "Open Practo login for manual sign-in",
16877
+ "access": "write",
16878
+ "domain": "www.practo.com",
16879
+ "strategy": "cookie",
16880
+ "browser": true,
16881
+ "args": [],
15415
16882
  "columns": [
15416
16883
  "status",
15417
- "logged_in",
15418
16884
  "site",
15419
- "user_id",
15420
- "name"
16885
+ "message"
15421
16886
  ],
15422
16887
  "type": "js",
15423
- "modulePath": "pixiv/auth.js",
15424
- "sourceFile": "pixiv/auth.js",
16888
+ "modulePath": "practo/login.js",
16889
+ "sourceFile": "practo/login.js",
15425
16890
  "navigateBefore": false,
15426
16891
  "siteSession": "persistent",
15427
16892
  "defaultWindowMode": "foreground"
15428
16893
  },
15429
16894
  {
15430
- "site": "pixiv",
15431
- "name": "ranking",
15432
- "description": "Pixiv illustration rankings (daily/weekly/monthly)",
16895
+ "site": "practo",
16896
+ "name": "profile",
16897
+ "description": "Read public details from a Practo doctor profile URL",
15433
16898
  "access": "read",
15434
- "domain": "www.pixiv.net",
16899
+ "domain": "www.practo.com",
15435
16900
  "strategy": "cookie",
15436
16901
  "browser": true,
15437
16902
  "args": [
15438
16903
  {
15439
- "name": "mode",
16904
+ "name": "url",
15440
16905
  "type": "str",
15441
- "default": "daily",
15442
- "required": false,
15443
- "help": "Ranking mode",
15444
- "choices": [
15445
- "daily",
15446
- "weekly",
15447
- "monthly",
15448
- "rookie",
15449
- "original",
15450
- "male",
15451
- "female",
15452
- "daily_r18",
15453
- "weekly_r18"
15454
- ]
15455
- },
15456
- {
15457
- "name": "page",
15458
- "type": "int",
15459
- "default": 1,
15460
- "required": false,
15461
- "help": "Page number"
15462
- },
15463
- {
15464
- "name": "limit",
15465
- "type": "int",
15466
- "default": 20,
15467
- "required": false,
15468
- "help": "Number of results"
16906
+ "required": true,
16907
+ "positional": true,
16908
+ "help": "Practo doctor profile URL"
15469
16909
  }
15470
16910
  ],
15471
16911
  "columns": [
15472
- "rank",
15473
- "title",
15474
- "author",
15475
- "user_id",
15476
- "illust_id",
15477
- "pages",
15478
- "bookmarks",
15479
- "url"
16912
+ "name",
16913
+ "specialty",
16914
+ "experience",
16915
+ "fee",
16916
+ "profile_url"
15480
16917
  ],
15481
16918
  "type": "js",
15482
- "modulePath": "pixiv/ranking.js",
15483
- "sourceFile": "pixiv/ranking.js",
15484
- "navigateBefore": "https://www.pixiv.net"
16919
+ "modulePath": "practo/profile.js",
16920
+ "sourceFile": "practo/profile.js",
16921
+ "navigateBefore": false
15485
16922
  },
15486
16923
  {
15487
- "site": "pixiv",
16924
+ "site": "practo",
15488
16925
  "name": "search",
15489
- "description": "Search Pixiv illustrations by keyword",
16926
+ "description": "Search Practo doctors by specialty, city, and optional locality",
15490
16927
  "access": "read",
15491
- "domain": "www.pixiv.net",
16928
+ "domain": "www.practo.com",
15492
16929
  "strategy": "cookie",
15493
16930
  "browser": true,
15494
16931
  "args": [
15495
16932
  {
15496
- "name": "query",
16933
+ "name": "specialty",
15497
16934
  "type": "str",
15498
16935
  "required": true,
15499
16936
  "positional": true,
15500
- "help": "Search keyword or tag"
15501
- },
15502
- {
15503
- "name": "limit",
15504
- "type": "int",
15505
- "default": 20,
15506
- "required": false,
15507
- "help": "Number of results"
16937
+ "help": "Doctor specialty, e.g. orthopedist or dermatologist"
15508
16938
  },
15509
16939
  {
15510
- "name": "order",
16940
+ "name": "city",
15511
16941
  "type": "str",
15512
- "default": "date_d",
16942
+ "default": "bangalore",
15513
16943
  "required": false,
15514
- "help": "Sort order",
15515
- "choices": [
15516
- "date_d",
15517
- "date",
15518
- "popular_d",
15519
- "popular_male_d",
15520
- "popular_female_d"
15521
- ]
16944
+ "help": "City, e.g. bangalore"
15522
16945
  },
15523
16946
  {
15524
- "name": "mode",
16947
+ "name": "locality",
15525
16948
  "type": "str",
15526
- "default": "all",
15527
16949
  "required": false,
15528
- "help": "Search mode",
15529
- "choices": [
15530
- "all",
15531
- "safe",
15532
- "r18"
15533
- ]
16950
+ "help": "Optional locality, e.g. indiranagar"
15534
16951
  },
15535
16952
  {
15536
- "name": "page",
16953
+ "name": "limit",
15537
16954
  "type": "int",
15538
- "default": 1,
16955
+ "default": 10,
15539
16956
  "required": false,
15540
- "help": "Page number"
16957
+ "help": "Max doctors to return (1-25)"
15541
16958
  }
15542
16959
  ],
15543
16960
  "columns": [
15544
16961
  "rank",
15545
- "title",
15546
- "author",
15547
- "user_id",
15548
- "illust_id",
15549
- "pages",
15550
- "bookmarks",
15551
- "tags",
15552
- "url"
16962
+ "practice_doctor_id",
16963
+ "doctor_id",
16964
+ "practice_id",
16965
+ "name",
16966
+ "specialty",
16967
+ "experience_years",
16968
+ "locality",
16969
+ "clinic",
16970
+ "fee",
16971
+ "next_available",
16972
+ "profile_url"
15553
16973
  ],
15554
16974
  "type": "js",
15555
- "modulePath": "pixiv/search.js",
15556
- "sourceFile": "pixiv/search.js",
15557
- "navigateBefore": "https://www.pixiv.net"
16975
+ "modulePath": "practo/search.js",
16976
+ "sourceFile": "practo/search.js",
16977
+ "navigateBefore": false
15558
16978
  },
15559
16979
  {
15560
- "site": "pixiv",
15561
- "name": "user",
15562
- "description": "View Pixiv artist profile",
16980
+ "site": "practo",
16981
+ "name": "slots",
16982
+ "description": "List available Practo appointment slots for a practice_doctor_id",
15563
16983
  "access": "read",
15564
- "domain": "www.pixiv.net",
16984
+ "domain": "www.practo.com",
15565
16985
  "strategy": "cookie",
15566
16986
  "browser": true,
15567
16987
  "args": [
15568
16988
  {
15569
- "name": "uid",
16989
+ "name": "practice_doctor_id",
15570
16990
  "type": "str",
15571
16991
  "required": true,
15572
16992
  "positional": true,
15573
- "help": "Pixiv user ID"
16993
+ "help": "Practo practice_doctor_id from search results"
16994
+ },
16995
+ {
16996
+ "name": "limit",
16997
+ "type": "int",
16998
+ "default": 20,
16999
+ "required": false,
17000
+ "help": "Max slots to return (1-25)"
15574
17001
  }
15575
17002
  ],
15576
17003
  "columns": [
15577
- "user_id",
15578
- "name",
15579
- "premium",
15580
- "following",
15581
- "illusts",
15582
- "manga",
15583
- "novels",
15584
- "comment",
15585
- "url"
17004
+ "practice_doctor_id",
17005
+ "time",
17006
+ "available",
17007
+ "amount",
17008
+ "prepaid",
17009
+ "appointment_token"
15586
17010
  ],
15587
17011
  "type": "js",
15588
- "modulePath": "pixiv/user.js",
15589
- "sourceFile": "pixiv/user.js",
15590
- "navigateBefore": "https://www.pixiv.net"
17012
+ "modulePath": "practo/slots.js",
17013
+ "sourceFile": "practo/slots.js",
17014
+ "navigateBefore": false
15591
17015
  },
15592
17016
  {
15593
- "site": "pixiv",
17017
+ "site": "practo",
15594
17018
  "name": "whoami",
15595
- "description": "Show the current logged-in pixiv account",
17019
+ "aliases": [
17020
+ "auth-status"
17021
+ ],
17022
+ "description": "Show whether the current browser session is logged into Practo",
15596
17023
  "access": "read",
15597
- "domain": "pixiv.net",
17024
+ "domain": "www.practo.com",
15598
17025
  "strategy": "cookie",
15599
17026
  "browser": true,
15600
17027
  "args": [],
15601
17028
  "columns": [
15602
17029
  "logged_in",
15603
17030
  "site",
15604
- "user_id",
15605
17031
  "name"
15606
17032
  ],
15607
17033
  "type": "js",
15608
- "modulePath": "pixiv/auth.js",
15609
- "sourceFile": "pixiv/auth.js",
17034
+ "modulePath": "practo/whoami.js",
17035
+ "sourceFile": "practo/whoami.js",
15610
17036
  "navigateBefore": false,
15611
17037
  "siteSession": "persistent"
15612
17038
  },
@@ -25808,6 +27234,238 @@
25808
27234
  "navigateBefore": false,
25809
27235
  "siteSession": "persistent"
25810
27236
  },
27237
+ {
27238
+ "site": "zepto",
27239
+ "name": "add-to-cart",
27240
+ "description": "Add a Zepto product to cart",
27241
+ "access": "write",
27242
+ "domain": "www.zepto.com",
27243
+ "strategy": "cookie",
27244
+ "browser": true,
27245
+ "args": [
27246
+ {
27247
+ "name": "product",
27248
+ "type": "str",
27249
+ "required": true,
27250
+ "positional": true,
27251
+ "help": "Product URL from Zepto search results"
27252
+ },
27253
+ {
27254
+ "name": "quantity",
27255
+ "type": "int",
27256
+ "default": 1,
27257
+ "required": false,
27258
+ "help": "Quantity to add (max 12)"
27259
+ }
27260
+ ],
27261
+ "columns": [
27262
+ "ok",
27263
+ "product_id",
27264
+ "quantity",
27265
+ "item_count",
27266
+ "message"
27267
+ ],
27268
+ "type": "js",
27269
+ "modulePath": "zepto/add-to-cart.js",
27270
+ "sourceFile": "zepto/add-to-cart.js",
27271
+ "navigateBefore": false
27272
+ },
27273
+ {
27274
+ "site": "zepto",
27275
+ "name": "cart",
27276
+ "description": "Read Zepto cart line items",
27277
+ "access": "read",
27278
+ "domain": "www.zepto.com",
27279
+ "strategy": "cookie",
27280
+ "browser": true,
27281
+ "args": [],
27282
+ "columns": [
27283
+ "rank",
27284
+ "product_id",
27285
+ "title",
27286
+ "pack_size",
27287
+ "quantity",
27288
+ "price",
27289
+ "mrp",
27290
+ "availability"
27291
+ ],
27292
+ "type": "js",
27293
+ "modulePath": "zepto/cart.js",
27294
+ "sourceFile": "zepto/cart.js",
27295
+ "navigateBefore": false
27296
+ },
27297
+ {
27298
+ "site": "zepto",
27299
+ "name": "checkout",
27300
+ "description": "Open Zepto checkout review without placing an order",
27301
+ "access": "write",
27302
+ "domain": "www.zepto.com",
27303
+ "strategy": "cookie",
27304
+ "browser": true,
27305
+ "args": [],
27306
+ "columns": [
27307
+ "ok",
27308
+ "stage",
27309
+ "item_count",
27310
+ "next_action",
27311
+ "url"
27312
+ ],
27313
+ "type": "js",
27314
+ "modulePath": "zepto/checkout.js",
27315
+ "sourceFile": "zepto/checkout.js",
27316
+ "navigateBefore": false
27317
+ },
27318
+ {
27319
+ "site": "zepto",
27320
+ "name": "location",
27321
+ "description": "Show the selected Zepto delivery location",
27322
+ "access": "read",
27323
+ "domain": "www.zepto.com",
27324
+ "strategy": "cookie",
27325
+ "browser": true,
27326
+ "args": [],
27327
+ "columns": [
27328
+ "selected",
27329
+ "label",
27330
+ "area",
27331
+ "city",
27332
+ "pincode",
27333
+ "hasCoordinates",
27334
+ "source"
27335
+ ],
27336
+ "type": "js",
27337
+ "modulePath": "zepto/location.js",
27338
+ "sourceFile": "zepto/location.js",
27339
+ "navigateBefore": false
27340
+ },
27341
+ {
27342
+ "site": "zepto",
27343
+ "name": "login",
27344
+ "description": "Open Zepto login and wait until the browser session is authenticated",
27345
+ "access": "write",
27346
+ "domain": "www.zepto.com",
27347
+ "strategy": "cookie",
27348
+ "browser": true,
27349
+ "args": [
27350
+ {
27351
+ "name": "timeout",
27352
+ "type": "int",
27353
+ "default": 300,
27354
+ "required": false,
27355
+ "help": "Maximum seconds to wait for the user to finish login"
27356
+ }
27357
+ ],
27358
+ "columns": [
27359
+ "status",
27360
+ "logged_in",
27361
+ "site"
27362
+ ],
27363
+ "type": "js",
27364
+ "modulePath": "zepto/auth.js",
27365
+ "sourceFile": "zepto/auth.js",
27366
+ "navigateBefore": false,
27367
+ "siteSession": "persistent",
27368
+ "defaultWindowMode": "foreground"
27369
+ },
27370
+ {
27371
+ "site": "zepto",
27372
+ "name": "place-order",
27373
+ "description": "Submit a real Zepto order only when --confirm true is passed",
27374
+ "access": "write",
27375
+ "domain": "www.zepto.com",
27376
+ "strategy": "cookie",
27377
+ "browser": true,
27378
+ "args": [
27379
+ {
27380
+ "name": "confirm",
27381
+ "type": "boolean",
27382
+ "default": false,
27383
+ "required": false,
27384
+ "help": "Required. Set true to submit a real Zepto order/payment action."
27385
+ }
27386
+ ],
27387
+ "columns": [
27388
+ "status",
27389
+ "confirmed",
27390
+ "message"
27391
+ ],
27392
+ "type": "js",
27393
+ "modulePath": "zepto/place-order.js",
27394
+ "sourceFile": "zepto/place-order.js",
27395
+ "navigateBefore": false
27396
+ },
27397
+ {
27398
+ "site": "zepto",
27399
+ "name": "product",
27400
+ "description": "Read Zepto product details",
27401
+ "access": "read",
27402
+ "domain": "www.zepto.com",
27403
+ "strategy": "cookie",
27404
+ "browser": true,
27405
+ "args": [
27406
+ {
27407
+ "name": "product",
27408
+ "type": "str",
27409
+ "required": true,
27410
+ "positional": true,
27411
+ "help": "Product URL from Zepto search results"
27412
+ }
27413
+ ],
27414
+ "columns": [
27415
+ "product_id",
27416
+ "title",
27417
+ "brand",
27418
+ "pack_size",
27419
+ "price",
27420
+ "mrp",
27421
+ "availability",
27422
+ "url"
27423
+ ],
27424
+ "type": "js",
27425
+ "modulePath": "zepto/product.js",
27426
+ "sourceFile": "zepto/product.js",
27427
+ "navigateBefore": false
27428
+ },
27429
+ {
27430
+ "site": "zepto",
27431
+ "name": "search",
27432
+ "description": "Search Zepto products",
27433
+ "access": "read",
27434
+ "domain": "www.zepto.com",
27435
+ "strategy": "cookie",
27436
+ "browser": true,
27437
+ "args": [
27438
+ {
27439
+ "name": "query",
27440
+ "type": "str",
27441
+ "required": true,
27442
+ "positional": true,
27443
+ "help": "Search query"
27444
+ },
27445
+ {
27446
+ "name": "limit",
27447
+ "type": "int",
27448
+ "default": 20,
27449
+ "required": false,
27450
+ "help": "Maximum products to return (max 50)"
27451
+ }
27452
+ ],
27453
+ "columns": [
27454
+ "rank",
27455
+ "product_id",
27456
+ "title",
27457
+ "brand",
27458
+ "pack_size",
27459
+ "price",
27460
+ "mrp",
27461
+ "availability",
27462
+ "url"
27463
+ ],
27464
+ "type": "js",
27465
+ "modulePath": "zepto/search.js",
27466
+ "sourceFile": "zepto/search.js",
27467
+ "navigateBefore": false
27468
+ },
25811
27469
  {
25812
27470
  "site": "zlibrary",
25813
27471
  "name": "info",