📜  pinterest 克隆 github - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:03:46.357000             🧑  作者: Mango

Pinterest 克隆 Github - Shell-Bash

简介

这是一个用 Shell-Bash 编写的 Pinterest 克隆 Github 的程序。该程序可以让用户创建账户、上传图片、浏览图片和喜欢图片。它是一个用于学习 Shell-Bash 的绝佳示例,它可以帮助你更好地理解 Shell-Bash 的各种概念和语法。

需求

要运行这个程序,你需要具备以下要求:

  1. 一台运行 Linux 操作系统的计算机
  2. Bash shell
  3. Git
  4. PHP
安装
  1. 克隆本仓库:

    git clone https://github.com/pinterest-clone/pinterest-clone-github-shell.git
    
  2. 进入程序目录:

    cd pinterest-clone-github-shell
    
  3. 修改配置文件:

    cp config.sample.sh config.sh
    nano config.sh
    

    config.sh 文件中填入你的 Github 用户名和密码、你的 MySQL 数据库信息。

  4. 导入数据库:

    mysql -u username -p database_name < database.sql
    

    注意:需要事先创建好 database_name 数据库,数据库用户需要有权限导入数据库。

  5. 运行程序:

    bash start.sh
    

    然后在浏览器中打开 http://localhost:8080

功能

该程序包含以下功能:

  • 注册和登录功能
  • 上传图片功能
  • 浏览图片功能
  • 喜欢图片功能
技术说明

该程序是用 Shell-Bash 编写的,它使用了以下技术:

  1. Github API:用于登录、上传图片、获取图片等操作
  2. PHP:用于处理用户注册、登录等操作
  3. MySQL:用于存储用户信息、图片信息等数据
代码

以下是程序的部分代码:

#!/bin/bash

# 登录
function login {
    read -p "请输入您的 Github 用户名:" github_username
    read -s -p "请输入您的 Github 密码:" github_password
    echo

    # 通过 Github API 验证用户信息
    response=$(curl -s -u "${github_username}:${github_password}" "https://api.github.com/user")
    if [[ $response =~ "login" ]]; then
        # 登录成功
        echo "登录成功"
        logged_in=true
    else
        # 登录失败
        echo "用户名或密码错误,请重试!"
        logged_in=false
    fi
}

# 注册
function register {
    read -p "请输入您的用户名:" username
    
    # 查询用户名是否可用
    if [[ $(mysql -u${db_user} -p${db_password} -h${db_host} -P${db_port} -D${db_name} -N -s -e "SELECT COUNT(*) FROM users WHERE username='${username}'") -eq 0 ]]; then
        read -s -p "请输入您的密码:" password
        echo
        mysql -u${db_user} -p${db_password} -h${db_host} -P${db_port} -D${db_name} -e "INSERT INTO users (username, password) VALUES ('${username}', MD5('${password}'))"
        echo "注册成功"
    else
        echo "用户名已存在,请重试!"
    fi
}
结束语

通过这个项目,你可以更好地理解 Shell-Bash 的语法和各种概念。同时,你也可以结合 Github API 和其他技术,构建出更加复杂的应用程序。