config.ts 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import "dotenv/config";
  2. const config = {
  3. LOG_LEVEL: process.env.LOG_LEVEL ?? "debug",
  4. REDIS_CONN: process.env.REDIS_CONN ?? "redis://localhost:6379/10",
  5. PUPPETEER_URL: process.env.PUPPETEER_URL ?? "http://localhost:8000/api/v1/visit",
  6. MASTODON_URL: process.env.MASTODON_URL ?? "https://mastodon.cl",
  7. MASTODON_API_URL: process.env.MASTODON_API_URL ?? "https://mastodon.cl/api/v1/",
  8. MASTODON_STREAMING_URL: process.env.MASTODON_STREAMING_URL ?? "wss://mastodon.cl/api/v1/streaming",
  9. IMG_PLACEHOLDER: process.env.IMG_PLACEHOLDER ?? "https://placehold.co/600x400",
  10. DEFAULT_TIMEZONE: process.env.DEFAULT_TIMEZONE ?? "America/Santiago",
  11. DEFAULT_LOCALE: process.env.DEFAULT_LOCALE ?? "es-CL",
  12. MASTODON_DB_HOST: process.env.MASTODON_DB_HOST,
  13. MASTODON_DB_USER: process.env.MASTODON_DB_USER,
  14. MASTODON_DB_PASSWORD: process.env.MASTODON_DB_PASSWORD,
  15. MASTODON_DB_DATABASE: process.env.MASTODON_DB_DATABASE,
  16. // PORTALES
  17. HORAS24: process.env["24HORAS"] ?? "https://www.24horas.cl/",
  18. ADNRADIO: process.env.ADNRADIO ?? "https://www.adnradio.cl/",
  19. BIOBIOCHILE: process.env.BIOBIOCHILE ?? "https://www.biobiochile.cl/",
  20. CAMBIO21: process.env.CAMBIO21 ?? "https://cambio21.cl/",
  21. CHILECULTURA: process.env.CHILECULTURA ?? "https://chilecultura.gob.cl/",
  22. CIPER: process.env.CIPER ?? "https://www.ciperchile.cl/actualidad/",
  23. CODEXVERDE: process.env.CODEXVERDE ?? "https://codexverde.cl/",
  24. CONTRAPODER: process.env.CONTRAPODER ?? "https://contrapoderchile.cl/category/portada/",
  25. COOPERATIVA: process.env.COOPERATIVA ?? "https://www.cooperativa.cl/",
  26. CNNCHILE: process.env.CNNCHILE ?? "https://www.cnnchile.com/",
  27. DF: process.env.DF ?? "https://www.df.cl/ultimasnoticias",
  28. ELCIUDADANO: process.env.ELCIUDADANO ?? "https://www.elciudadano.com/chile/",
  29. ELDESCONCIERTO: process.env.ELDESCONCIERTO ?? "https://eldesconcierto.cl",
  30. ELMOSTRADOR: process.env.ELMOSTRADOR ?? "https://www.elmostrador.cl/categoria/dia/",
  31. ELSIGLO: process.env.ELSIGLO ?? "https://elsiglo.cl/",
  32. EMOL: process.env.EMOL ?? "https://www.emol.com",
  33. FASTCHECK: process.env.FASTCHECK ?? "https://www.fastcheck.cl/category/chequeo/",
  34. GLACIARESCHILENOS: process.env.GLACIARESCHILENOS ?? "https://www.glaciareschilenos.org/articulos/",
  35. INTERFERENCIA: process.env.INTERFERENCIA ?? "https://interferencia.cl/",
  36. LADERASUR: process.env.LADERASUR ?? "https://laderasur.com/",
  37. LAHORA: process.env.LAHORA ?? "https://lahora.cl/",
  38. LAVOZDELOSQUESOBRAN: process.env.LAVOZDELOSQUESOBRAN ?? "https://lavozdelosquesobran.cl/",
  39. LANACION: process.env.LANACION ?? "https://www.lanacion.cl/",
  40. LATERCERA: process.env.LATERCERA ?? "https://www.latercera.com/canal/nacional/",
  41. METEORED: process.env.METEORED ?? "https://www.meteored.cl/",
  42. RESUMEN: process.env.RESUMEN ?? "https://resumen.cl/",
  43. SISMOLOGIA: process.env.SISMOLOGIA ?? "https://www.sismologia.cl/index.html",
  44. TARREO: process.env.TARREO ?? "https://www.tarreo.com/noticias/",
  45. THECLINIC: process.env.THECLINIC ?? "https://www.theclinic.cl/lo-ultimo/",
  46. // KEYS
  47. MASTODON_KEY_24HORAS: process.env.MASTODON_KEY_24HORAS ?? "",
  48. MASTODON_KEY_ADNRADIO: process.env.MASTODON_KEY_ADNRADIO ?? "",
  49. MASTODON_KEY_BIOBIOCHILE: process.env.MASTODON_KEY_BIOBIOCHILE ?? "",
  50. MASTODON_KEY_CAMBIO21: process.env.MASTODON_KEY_CAMBIO21 ?? "",
  51. MASTODON_KEY_CHILECULTURA: process.env.MASTODON_KEY_CHILECULTURA ?? "",
  52. MASTODON_KEY_CIPER: process.env.MASTODON_KEY_CIPER ?? "",
  53. MASTODON_KEY_CODEXVERDE: process.env.MASTODON_KEY_CODEXVERDE ?? "",
  54. MASTODON_KEY_CNNCHILE: process.env.MASTODON_KEY_CNNCHILE ?? "",
  55. MASTODON_KEY_CONTRAPODER: process.env.MASTODON_KEY_CONTRAPODER ?? "",
  56. MASTODON_KEY_COOPERATIVA: process.env.MASTODON_KEY_COOPERATIVA ?? "",
  57. MASTODON_KEY_DF: process.env.MASTODON_KEY_DF ?? "",
  58. MASTODON_KEY_ELCIUDADANO: process.env.MASTODON_KEY_ELCIUDADANO ?? "",
  59. MASTODON_KEY_ELDESCONCIERTO: process.env.MASTODON_KEY_ELDESCONCIERTO ?? "",
  60. MASTODON_KEY_ELMOSTRADOR: process.env.MASTODON_KEY_ELMOSTRADOR ?? "",
  61. MASTODON_KEY_ELSIGLO: process.env.MASTODON_KEY_ELSIGLO ?? "",
  62. MASTODON_KEY_EMOL: process.env.MASTODON_KEY_EMOL ?? "",
  63. MASTODON_KEY_FASTCHECK: process.env.MASTODON_KEY_FASTCHECK ?? "",
  64. MASTODON_KEY_GLACIARESCHILENOS: process.env.MASTODON_KEY_GLACIARESCHILENOS ?? "",
  65. MASTODON_KEY_INTERFERENCIA: process.env.MASTODON_KEY_INTERFERENCIA ?? "",
  66. MASTODON_KEY_LADERASUR: process.env.MASTODON_KEY_LADERASUR ?? "",
  67. MASTODON_KEY_LAHORA: process.env.MASTODON_KEY_LAHORA ?? "",
  68. MASTODON_KEY_LAVOZDELOSQUESOBRAN: process.env.MASTODON_KEY_LAVOZDELOSQUESOBRAN ?? "",
  69. MASTODON_KEY_LANACION: process.env.MASTODON_KEY_LANACION ?? "",
  70. MASTODON_KEY_LATERCERA: process.env.MASTODON_KEY_LATERCERA ?? "",
  71. MASTODON_KEY_METEORED: process.env.MASTODON_KEY_METEORED ?? "",
  72. MASTODON_KEY_RESUMEN: process.env.MASTODON_KEY_RESUMEN ?? "",
  73. MASTODON_KEY_SISMOLOGIA: process.env.MASTODON_KEY_SISMOLOGIA ?? "",
  74. MASTODON_KEY_TARREO: process.env.MASTODON_KEY_TARREO ?? "",
  75. MASTODON_KEY_THECLINIC: process.env.MASTODON_KEY_THECLINIC ?? "",
  76. // AGENTS
  77. MASTODON_KEY_FORTUNE: process.env.MASTODON_KEY_FORTUNE ?? "",
  78. MASTODON_KEY_REMINDME: process.env.MASTODON_KEY_REMINDME ?? "",
  79. MASTODON_KEY_ANNIVERSARIES: process.env.MASTODON_KEY_ANNIVERSARIES ?? "",
  80. MASTODON_KEY_ANONYBOT: process.env.MASTODON_KEY_ANONYBOT ?? "",
  81. MASTODON_KEY_COUNTDOWN: process.env.MASTODON_KEY_COUNTDOWN ?? "",
  82. MASTODON_KEY_VIDEO_STREAMS: process.env.MASTODON_KEY_VIDEO_STREAMS ?? "",
  83. COUNTDOWN_EVENTS: process.env.COUNTDOWN_EVENTS ?? "",
  84. VIDEO_STREAMS: process.env.VIDEO_STREAMS ?? "",
  85. VIDEO_STREAMS_SCREENSHOT_DELAY: Number(process.env.VIDEO_STREAMS_SCREENSHOT_DELAY ?? 10000),
  86. VIDEO_STREAMS_CLICK_SELECTOR: process.env.VIDEO_STREAMS_CLICK_SELECTOR ?? ".ytp-large-play-button",
  87. // ANONYBOT Settings
  88. ANONYBOT_MAX_MESSAGE_LENGTH: process.env.ANONYBOT_MAX_MESSAGE_LENGTH ?? 500,
  89. ANONYBOT_RATE_LIMIT_HOURS: process.env.ANONYBOT_RATE_LIMIT_HOURS ?? 1,
  90. ANONYBOT_MAX_MESSAGES_PER_HOUR: process.env.ANONYBOT_MAX_MESSAGES_PER_HOUR ?? 5,
  91. ANONYBOT_MODERATION_LEVEL: process.env.ANONYBOT_MODERATION_LEVEL ?? "conservative",
  92. // OLLAMA
  93. OLLAMA_URL: process.env.OLLAMA_URL ?? "http://localhost:11434/api/generate",
  94. OLLAMA_MODEL: process.env.OLLAMA_MODEL ?? "llama3.2",
  95. OLLAMA_ENABLED: !(process.env.OLLAMA_ENABLED === "false"),
  96. OLLAMA_TIMEOUT: Number(process.env.OLLAMA_TIMEOUT ?? 10000),
  97. // Develop
  98. DEVELOP: !(process.env.DEVELOP === "false"),
  99. DEV_ACTIVE_PORTALS: process.env.DEV_ACTIVE_PORTALS?.split(";") ?? [],
  100. MASTODON_TEST_ACCESS_TOKEN: process.env.MASTODON_TEST_ACCESS_TOKEN ?? "",
  101. };
  102. export default config;