Skip to content

Circle-Company/Circle-Text

Repository files navigation

📝 Circle Text - Processamento de texto para Moments

CircleText resolve o problema de processamento de textos de forma leve rápida para ser usada na interface e sistema do Circle App.

Estrutura

  • validate:
    • username
    • hashtags
    • urls
  • extract:
    • username
    • hashtags
    • urls
    • keywords
  • analize:
    • sentiment

✅ Validação

👤 Nome de usuário

Valida se o nome de usuário está escrito corretamente conforme as regras:

  • Possui o @ no início.
  • Mínimo de 4 e máximo de 20 caractéres (exluindo o @).
  • Que não começa ou termina com ..
  • Que não contém múltiplos _ e . seguidos.
  • Se todos os caractéres estão minúsculos.

Exemplos:

circleText.validation.username("@test_user") // deve retornar "true"
circleText.validation.username("test_user") // deve retornar "true"
circleText.validation.username("invalid user") // deve retornar "false"
circleText.validation.username("") // deve retornar "false"

#️⃣ Hashtags

  • valida se o texto inserido inicia com #
  • valida que a hashtag não tenha espaçamento no meio do texto

Exemplos:

circleText.validation.hashtag("#example") // deve retornar "true"
circleText.validation.hashtag("example") // deve retornar "false"
circleText.validation.hashtag("#invalid hashtag") // deve retornar "false"
circleText.validation.hashtag("") // deve retornar "false"

🌐 Urls

  • valida se o texto começa com https:// ou http://
  • valida formato do protocolo, autenticação, host, porta, e path da url estão corretos

Exemplos:

circleText.validation.url("https://example.com") // deve retornar "true"
circleText.validation.url("http://example.com") // deve retornar "true"
circleText.validation.url("example.com", false) // deve retornar "true"
circleText.validation.url("invalid-url") // deve retornar "false"
circleText.validation.url("") // deve retornar "false"

⬆️ Extração

👤 Nome de usuário

Extrai do texto as menções, valida o formato e retorna um array com as menções válidas:

const text = "Check out @test_user and @another_user!"
const mentions = circleText.extract.mentions(text)
// deve retornar: ["@test_user", "@another_user"]

#️⃣ Hashtags

Extrai do texto as hashtags, valida o formato e retorna um array com as tags válidas:

const text = "Check out #example and #test!"
const hashtags = circleText.extract.hashtags(text)
// deve retornar: ["#example", "#test"]

🌐 Urls

Extrai do texto as urls, valida o formato e retorna um array com as urls válidas:

const text = "Visit https://example.com and http://test.com for more info."
const urls = circleText.extract.urls(text)
// deve retornar: ["https://example.com", "http://test.com"]

💬 Keywords

Extrai as palavras mais importantes de um texto e retorna um array com as keywords em ordem:

const text =
    "Esse é um texto de teste com algumas keywords importantes: fome, test, text, keywords, importantes."
const keywords = circleText.extract.keywords(text)
// deve retornar: ["keyword", "importante", "texto", "teste", "fome"]

🔎 Análize

🫀 Sentiment

Extrai as palavras mais importantes de um texto e retorna um array com as keywords em ordem:

//tipo do retorno
const returnType = {
    sentiment: "positive" | "negative" | "neutral"
    intensity: number
}
const text = "Estou muito feliz com o resultado do projeto!"
const sentiment = circleText.analize.sentiment(text)
// deve retornar: { sentiment: "positive", intensity: 0.7 }

Licença:

Copyright 2025 Circle Company, Inc. Licensed under the Circle License, Version 1.0

About

Circle Text Library. This code is used to process and analize text from CircleApp.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 99