Skip to content

Goodbye Unirun - 校园跑助手网页版🏃‍♂️

Notifications You must be signed in to change notification settings

OpenCUIT/byerun-web

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Byerun

Byerun web

Goodbye Unirun - 校园跑助手网页版🏃‍♂️

支持的地图

学校名称
成都信息工程大学
成都中医药大学
四川邮电职业技术学院
四川工商职业技术学院
四川南充卫生学校
广安职业技术学院
...

地图数据

高德地图坐标拾取

Demo

部署平台
Cloudflare Byerun Unirun
Vercel Byerun Unirun

本地构建

进入项目文件夹:

cd app

安装依赖:

npm install

开发调试:

npm run dev

构建:

npm run build

代理

进入代理文件夹:

cd server

安装依赖:

npm install

启动代理:

npm run start

支持在 Cloudflare 和 Vercel 上部署代理,避免源服务器的跨域限制。

graph TD;

    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    classDef error fill:#FFEBEB,stroke:#E68994,stroke-width:2px;



    A([ByerunWeb]):::process -->|Direct Request| U([UnirunAPI]):::process

    U --> |Cross - Origin Restriction| E([Request Failed]):::error

    A -->|Request Forwarded | C([Cloudflare / Vercel]):::process

    C --> U

    U --> C

    C --> |Response Returned| A
Loading

Cloudflare Worker

export default {
  async fetch(request, env) {
    if (request.method === 'OPTIONS') {
      return new Response(null, {
        status: 200,
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
          'Access-Control-Allow-Headers': '*'
        }
      });
    } else {
      return handleRequest(request, env);
    }
  }
};

async function handleRequest(request, env) {
  const url = new URL(request.url);
  const backendUrl = 'https://run-lb.tanmasports.com/v1' + url.pathname + url.search;

  const newHeaders = new Headers(request.headers);
  newHeaders.delete('Host');

  const init = {
    method: request.method,
    headers: newHeaders,
    body: request.method === 'GET' ? null : await request.clone().text()
  };

  const response = await fetch(backendUrl, init);

  const responseHeaders = new Headers(response.headers);
  responseHeaders.set('Access-Control-Allow-Origin', '*');
  responseHeaders.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
  responseHeaders.set('Access-Control-Allow-Headers', '*');

  const body = await response.text();

  return new Response(body, {
    status: response.status,
    headers: responseHeaders
  });
}

声明

本项目仅供学习研究使用,不得用于任何商业或非法用途。如需体验完整功能,请使用官方应用。

致谢

@msojocs/AutoRun

许可

Byerun 基于 CC BY-NC License, Version 4.0 发布。

About

Goodbye Unirun - 校园跑助手网页版🏃‍♂️

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 78.8%
  • JavaScript 20.0%
  • Other 1.2%