SEA-ICE-GROUPindex.html7 matches
461462// Fetch and display research projects
463async function loadResearch() {
464try {
465const response = await fetch('/api/research');
498499// Fetch and display team members
500async function loadTeam() {
501try {
502const response = await fetch('/api/team');
532533// Fetch and display publications
534async function loadPublications() {
535try {
536const response = await fetch('/api/publications');
562563// Fetch and display news
564async function loadNews() {
565try {
566const response = await fetch('/api/news');
619
620// Load and display sea ice extent data
621async function loadSeaIceData() {
622try {
623const response = await fetch('/api/data/sea-ice-extent');
678tooltip: {
679callbacks: {
680label: function(context) {
681return `${context.dataset.label}: ${context.raw} million km²`;
682}
707708// Handle contact form submission
709document.getElementById('contact-form').addEventListener('submit', function(e) {
710e.preventDefault();
711
SEA-ICE-GROUPutils.ts7 matches
1// Shared utility functions and types for the Sea Ice Research Group website
23// Team member interface
38}
3940// Format date function
41export function formatDate(dateString: string): string {
42const date = new Date(dateString);
43return date.toLocaleDateString('en-US', {
48}
4950// Truncate text function
51export function truncateText(text: string, maxLength: number): string {
52if (text.length <= maxLength) return text;
53return text.slice(0, maxLength) + '...';
54}
5556// Generate citation function
57export function generateCitation(publication: Publication): string {
58return `${publication.authors} (${publication.year}). ${publication.title}. ${publication.journal}. DOI: ${publication.doi}`;
59}
TyappValqueries.ts5 matches
45// Job posting queries
6export async function getAllJobPostings(): Promise<JobPosting[]> {
7const result = await sqlite.execute(
8`SELECT * FROM ${JOBS_TABLE} ORDER BY createdAt DESC`
11}
1213export async function getJobPostingById(id: number): Promise<JobPosting | null> {
14const result = await sqlite.execute(
15`SELECT * FROM ${JOBS_TABLE} WHERE id = ?`,
19}
2021export async function createJobPosting(job: JobPostingFormData): Promise<JobPosting> {
22const createdAt = new Date().toISOString();
23const result = await sqlite.execute(
3132// Chat message queries
33export async function getAllChatMessages(limit = 50): Promise<ChatMessage[]> {
34const result = await sqlite.execute(
35`SELECT * FROM ${CHAT_TABLE} ORDER BY createdAt DESC LIMIT ?`,
39}
4041export async function createChatMessage(message: ChatMessageFormData): Promise<ChatMessage> {
42const createdAt = new Date().toISOString();
43const result = await sqlite.execute(
TyappValmigrations.ts1 match
5export const CHAT_TABLE = 'chat_messages_v1';
67export async function runMigrations() {
8// Create jobs table
9await sqlite.execute(`
34// Exportar a função fetch para o Val Town
5export default async function(req: Request) {
6try {
7return await app.fetch(req);
pokedexnew-file-4416.tsx12 matches
1export default async function upgradedPokemonPanel(req: Request): Promise<Response> {
2// Tenta obter a cor predominante do Pokémon para usar no tema.
3// Esta é uma simplificação, a cor exata pode vir de speciesData.color.name
428};
429430function translateTerm(term, type = 'label') {
431const lowerTerm = term ? String(term).toLowerCase().replace(/-/g, ' ') : 'unknown';
432if (type === 'value' && translations[lowerTerm]) {
438
439// Função para normalizar texto (remover acentos, caracteres especiais)
440function normalizeText(text) {
441return text.toLowerCase()
442.normalize("NFD").replace(/[\u0300-\u036f]/g, "") // Remove acentos
446
447// Função para converter nomes de Pokémon do português para inglês
448function convertPokemonNameToEnglish(name) {
449// Normaliza o nome para facilitar a busca
450const normalizedName = normalizeText(name);
466}
467468async function translateTextWithMyMemory(text, sourceLang = 'en', targetLang = 'pt-BR') {
469if (!text || text.trim() === translations.unknown || text.trim() === translations.no_evolution) return text;
470try {
486}
487
488function getLocalizedTextEntry(entries, fieldName = 'flavor_text', langOrder = ['pt', 'en']) {
489if (!entries || entries.length === 0) return translations.unknown;
490for (const lang of langOrder) {
520});
521522function setupThemeSelectors() {
523const themeOptions = document.querySelectorAll('.theme-option');
524themeOptions.forEach(option => {
537}
538
539function setTheme(theme) {
540// Remover tema anterior
541document.body.removeAttribute('data-theme');
552pokemonNameInput.addEventListener('keypress', (event) => event.key === 'Enter' && fetchPokemonDetails());
553554async function fetchPokemonDetails() {
555const pokemonIdentifier = pokemonNameInput.value.toLowerCase().trim();
556if (!pokemonIdentifier) {
579}
580
581function clearPreviousData() {
582detailsDiv.innerHTML = '';
583detailsDiv.classList.remove('loaded');
600}
601602function showError(message) {
603errorDiv.textContent = message;
604errorDiv.style.display = 'block';
606}
607608async function displayPokemonInfo(speciesData, pokemonData) {
609const accentHex = pokemonColorHexMap[speciesData.color.name.toLowerCase()] || '${accentColor}';
610pokedexPanel.style.setProperty('--panel-accent-color', accentHex);
TastkItqueries.ts19 matches
45// Função simples para hash de senha
6async function hashPassword(password: string): Promise<string> {
7// Em produção, use uma biblioteca de hash mais segura
8// Esta é uma implementação básica para demonstração
1516// Função para verificar senha
17async function verifyPasswordHash(password: string, hash: string): Promise<boolean> {
18const calculatedHash = await hashPassword(password);
19return calculatedHash === hash;
22// ==================== Funções de Usuário ====================
2324export async function createUser(input: CreateUserInput): Promise<User> {
25try {
26// Verificar novamente se o email ou username já existem (para evitar condições de corrida)
55}
5657export async function getUserByUsername(username: string): Promise<User | null> {
58const result = await sqlite.execute(
59`SELECT id, username, email, password_hash, created_at, updated_at
66}
6768export async function getUserByEmail(email: string): Promise<User | null> {
69const result = await sqlite.execute(
70`SELECT id, username, email, password_hash, created_at, updated_at
77}
7879export async function getUserById(id: number): Promise<User | null> {
80const result = await sqlite.execute(
81`SELECT id, username, email, created_at, updated_at
88}
8990export async function verifyPassword(plainPassword: string, hashedPassword: string): Promise<boolean> {
91return await verifyPasswordHash(plainPassword, hashedPassword);
92}
94// ==================== Funções de Projeto ====================
9596export async function createProject(input: CreateProjectInput): Promise<Project> {
97const result = await sqlite.execute(
98`INSERT INTO ${PROJECTS_TABLE} (name, color, user_id)
105}
106107export async function getProjectsByUserId(userId: number): Promise<Project[]> {
108const result = await sqlite.execute(
109`SELECT id, name, color, user_id, created_at, updated_at
117}
118119export async function getProjectById(id: number, userId: number): Promise<Project | null> {
120const result = await sqlite.execute(
121`SELECT id, name, color, user_id, created_at, updated_at
128}
129130export async function updateProject(id: number, userId: number, name: string, color?: string): Promise<Project | null> {
131const updateFields = [];
132const params = [];
162}
163164export async function deleteProject(id: number, userId: number): Promise<boolean> {
165const result = await sqlite.execute(
166`DELETE FROM ${PROJECTS_TABLE}
174// ==================== Funções de Tarefa ====================
175176export async function createTask(input: CreateTaskInput): Promise<Task> {
177const result = await sqlite.execute(
178`INSERT INTO ${TASKS_TABLE} (title, description, due_date, priority, project_id, user_id)
192}
193194export async function getTasksByProjectId(projectId: number, userId: number): Promise<Task[]> {
195const result = await sqlite.execute(
196`SELECT id, title, description, due_date, priority, completed, project_id, user_id, created_at, updated_at
211}
212213export async function getTasksByUserId(userId: number): Promise<Task[]> {
214const result = await sqlite.execute(
215`SELECT id, title, description, due_date, priority, completed, project_id, user_id, created_at, updated_at
230}
231232export async function getTaskById(id: number, userId: number): Promise<Task | null> {
233const result = await sqlite.execute(
234`SELECT id, title, description, due_date, priority, completed, project_id, user_id, created_at, updated_at
241}
242243export async function updateTask(id: number, userId: number, input: UpdateTaskInput): Promise<Task | null> {
244const updateFields = [];
245const params = [];
295}
296297export async function toggleTaskCompletion(id: number, userId: number): Promise<Task | null> {
298const result = await sqlite.execute(
299`UPDATE ${TASKS_TABLE}
308}
309310export async function deleteTask(id: number, userId: number): Promise<boolean> {
311const result = await sqlite.execute(
312`DELETE FROM ${TASKS_TABLE}
Oronet1101_script.tsx1 match
1// This script returns a random fun fact
2// You can run scripts manually in this view or call it from other vals.
3export default function getRandomFact() {
4const funFacts = [
5"Honey never spoils.",
1export default async function (req: Request): Promise<Response> {
2return Response.json({ ok: true })
3}
23// Fetch top cryptocurrencies data from CoinGecko API
4async function fetchCryptoData(limit = 50) {
5try {
6// CoinGecko has rate limits, so we need to add a delay and retry mechanism
2930// Mock data for testing when API fails
31function getMockCryptoData(limit = 10) {
32const mockCoins = [
33{
157158// Fetch detailed data for a specific cryptocurrency
159async function fetchCryptoDetails(id: string) {
160try {
161const response = await fetch(
183184// Mock data for testing when API fails
185function getMockCryptoDetails(id: string) {
186const mockDetails: Record<string, any> = {
187"bitcoin": {
259}
260261export default async function(req: Request) {
262const url = new URL(req.url);
263