python助理,Yoda: Yoda 是一个智能、强大的命令行个人助理,可以帮助您在 Linux 中完成一些琐碎的任务,由 Python 编写而成...

43e51812b48be0e638f952d3e9b5c8f3.png

yoda

yoda.svg?branch=master

measure?project=yoda&metric=alert_status&template=FLAT

license-MIT-blue.svg?style=flat-square

version-1.0.0-blue.svg?style=flat-square

code%20style-black-000000.svg

Wise and powerful personal assistant, available in your nearest terminal

Install, how to

Requirements

virtualenv (only for testing and development)

Python development package:

Ubuntu: sudo apt-get install -y libxml2-dev libxslt-dev python-dev libav-tools

Visual C++ 9.0 for Python (If using Windows)

python-devel package (If using MacOS/OSX: link)

Run, how to

1. Docker

Run docker run --rm -it yodapa/yoda:latest yoda chat Hi

2. Using pip, without cloning

You can install yoda directly from the github repository using the following commands in shell.

virtualenv yodaenv

./yodaenv/bin/pip install git+https://github.com/yoda-pa/yoda

3. Using pip, with cloning

Clone this repository and create a virtual environment using Python 2 in the cloned directory (virtualenv -p /usr/bin/python2 venv). Steps after that:

8fbb3469b5edd80e6ee24e99d4aee6ef.gif

Instead of pip install --editable . you can use pip install . if you don't intend to make any changes in the code.

Use this package, how to

chat

Use the chat command to talk to the inbuilt chatbot for this project.

9f6f4e589a5a356d1f92b12524fb674f.gif

You can test the chat functionality on api.ai agent website here

dev

This command group contains some sub-commands that may be helpful for developers and tech-geeks.

speedtest: check your internet speed

c232c3957ec7c2c24ba35e77d9abe753.gif

url: URL shortener

6600521c3cef01cc99bfaa1af6dfe42c.gif

hackernews: read hackernews articles

c75436122d120737acfefbd9f2ec56c0.gif

sitechecker: check if a site is up

Usage:

$ yoda checksite https://manparvesh.com

$ yoda checksite https://manparveshs.com

1451979ef57af1ba9e9069d62852c2c9.gif

whois: get whois records

Usage:

$ yoda dev whois google.com

22f8a717963d1ea9df5d0f57a195a474.gif

grep: grep implementation

$ yoda dev grep PATTERN FILE|FOLDER -r [True] -i [True]

-r is the flag for recursive search. -i enables case insensitive search.

Both are optional parameter and the flags are off if they are not provided.

$ yoda dev grep \d+ modules/ -r True

Will recursively search all files in modules directory for any line containing 1 or more digits.

$ yoda dev grep yOdA modules/ -i True

Will recursively search all files in modules directory for any line containing the word yoda.

This search is case insensitive.

$ yoda dev grep yOdA yoda.py -i True

Will recursively search the file yoda.py for any line containing the word yoda.

This search is case insensitive.

gif: Create gif from images

$ yoda gif from_images --source SOURCE_DIR --output OUTPUT_FILE

Will scan the source directory and generate a gif. File will be located at OUTPUT_FILE.

e.g.

yoda gif from-images --source tests/resources/gif_frames/ --output test.gif

$ yoda gif from_images --source SOURCE_DIR --output OUTPUT_FILE --

Will scan the source directory and generate a gif. File will be located at OUTPUT_FILE.

and can be any keyword argument that imageio's mimsave function takes.

e.g.

yoda gif from-images --source tests/resources/gif_frames/ --output test.gif --fps 9

will create a gif with 9 fps.

gitsummary: gets the summary of your github account

$ yoda gitsummary GITHUB_LOGIN GITHUB_PASSWORD

Uses the GIthub v3 API to get number of repos, commits (last 24hr), open pull requests (last 24hr) and open issues (last 24hr).

e.g.

$ yoda gitsummary SomeUsername MySuperS3cr3tP4ssw0rd!

Fetching data. Patience you must have, my young padawan.

SomeUsername, ready your GitHub statistics are.

6 repositories you have.

In last 24 hours 10 commit(s), 2 pull requests(s) and 3 issue(s) you made.

run: compile and run source codes written in different programming languages!

$ yoda run tests/resources/test_code.py

748357107ef2721e1aafe2aaf8775397.gif

fileshare: share files that are accessible only once

$ yoda fileshare transport.png

901e9e41127de9468e342274042184b4.gif

keybindings: save key bindings

# To add(or import) a keybindings file

$ yoda dev keybindings add vim /absolute/path/to/keybinding/file.csv

# To search keybinding action for a software

$ yoda dev keybindings search vim move cusror

Key Bindings:

---------------------------------------

key | action

---------------|-----------------------

h | move cursor left

j | move cursor down

k | move cursor up

l | move cursor right

IP lookup: Get the geographical location of an IP address.

$ yoda iplookup 23.20.227.213

Virginia, United States

horoscope

See your horoscope

6a06f80c869f89e1195853db93e8231a.gif

command keep

# To add a command to your keep

$ yoda keep save -k find -k text -k name 'find . -name "*.txt"' command used to find textfiles by name

# To show all commands

$ yoda keep findall

# To show commands by keywords

$ yoda keep find -k text

# To remove a command

$ yoda keep remove -i ##command index, showed when running find or findall##

goals

Create and complete goals, add tasks and analyze your progress.

# To set a goal (name, description, deadline)

$ yoda goals new

# To show list of ideas

$ yoda goals view

# To set a goal as completed

$ yoda goals complete

# To see number of completed/incomplete goals, missed deadlines etc.

$ yoda goals analyze

# To view tasks assigned to the goal

$ yoda goals tasks

bc1abef3c96f1b06fc1e05f74e8203df.gif

Note: Use this module with diary module and assign new tasks to the goals by typing

$ yoda diary nt

and adding the goal names to the task when prompted to do so.

diary

This command can be used to maintain a personal diary, roughly based on the concept of Bullet Journal.

c2bbe531489fbf2061a331cfd4d49dac.gif

For creating and writing new note type

# For writing new note

$ yoda diary nn

# First give the title of the note.

# Second give the text of the note

# Viewing all notes.

$ yoda diary notes

# Updating note

# Choose the date and then the note to update

$ yoda diary un

# Deleting Note

# Choose the date and then the note to delete

$ yoda diary dn

For writing and viewing tasks.

# Writing new task

$ yoda diary nt

# Viewing all tasks

$ yoda diary tasks

# Change the status of task to completed

$ yoda diary ct

# Update task

# Choose the date and then the task to update

$ yoda diary ut

# Delete Task

# Choose the date and then the task to delete

$ yoda diary dt

# Delete all completed tasks for today

$ yoda diary dct

# type c to confirm the deletion

love

This command can be used to maintain a profile of someone you love, take notes and remember what they like.

c20755a7b65c50739dbc12fcab69e7bf.gif

money

For tracking money, this is.

0e2ef71f1a34c0643b1afb17e8c6252c.gif

Get your expenses per month

$ yoda money exps_month

$ Sep: spent 75 USD

$ Nov: spent 15 USD

$ Dec: spent 125 USD

Convert currency

$ yoda money convert

Enter currency codes seperated by space:

INR USD

₹ 1 = US$ 0.0136

Enter the amount in INR to be converted to USD

100

100 INR = 1.36 USD

leaselist

Keep a record of things people have taken from you, and the things you have taken from them - to remind them / yourself to return

# To add an item

$ yoda leaselist add

# To show list of items lent/borrowed

$ yoda leaselist show

# To remove an item from the list

$ yoda leaselist remove

Idea list

For creating list of ideas, type

# To add idea

$ yoda ideas add --task --inside

# To show list of ideas

$ yoda ideas show

# To remove a task from idea

$ yoda ideas remove --task --inside

# To remove an idea completely

$ yoda ideas remove --project

IP lookup

Get the geographical location of an IP address.

$ yoda iplookup 23.20.227.213

Virginia, United States

Custom cummands

Set a custom command.

$ yoda cc pwd

$ yoda pwd

/home/alex/git-clones/yoda

learn

This command group contains commands that, helpful in learning new things, will be.

vocabulary: For enhancing your vocabulary and tracking your progress.

2546ac7071f853fbd5396fd03c0a2349.gif

flashcards: for learning anything! (inspiration)

# create new set (remember to keep the name to one word)

$ yoda flashcards sets new english

# modify set

$ yoda flashcards sets modify english

# list all sets

$ yoda flashcards sets list

# select a study set

$ yoda flashcards select english

# create new card in selected set (card name length can be more than 1 word)

$ yoda flashcards cards new Oxford comma

# Know which set is selected and its information

$ yoda flashcards status

# study the selected study set. This will show you all the cards in a study set

# one by one.

$ yoda flashcards study

dictionary: to get definition, synonym, antonym and example of a word. This definition or synonym search will be automatically saved, so that while you are working on your vocabulary, you can come through the new word as well.

$ yoda dictionary define car

A few definitions of the word "car" with their parts of speech are given below:

---------------------------------

noun: a motor vehicle with four wheels; usually propelled by an internal combustion engine

noun: the compartment that is suspended from an airship and that carries personnel and the cargo and the power plant

noun: where passengers ride up and down

noun: a wheeled vehicle adapted to the rails of railroad

noun: a conveyance for passengers or freight on a cable railway

This word already exists in the vocabulary set, so you can practice it while using that

$ yoda dictionary synonym car

A few synonyms of the word "car" are given below:

---------------------------------

auto

automobile

machine

motorcar

gondola

elevator car

railcar

railroad car

railway car

cable car

This word already exists in the vocabulary set, so you can practice it while using that

$ yoda dictionary antonym car

Sorry, no antonyms were found for this word

$ yoda dictionary example good

A few examples of the word "good" are given below:

---------------------------------

weigh the good against the bad

among the highest goods of all are happiness and self-realization

a good friend

Aliasing

This command allows you to alias cumbersome commands.

# before: shortening a url

$ yoda url shorten google.com

# alias shorten to be s

$ yoda alias new "shorten" "s"

# can now use s in place of shorten

$ yoda url s google.com

# or alias the whole command as us

$ yoda alias new "url shorten" "us"

$ yoda us google.com

# show your current aliases

$ yoda alias show

# delete aliases

$ yoda alias delete "us"

$ yoda alias delete "s"

ascii_transfrom

This command outputs transformed ascii version of a given image.

# give the path of the image you want to transform

$ yoda ascii_transform logo.png

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..+.?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+..+..+?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..+..+..+..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%SSSSS++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...+.....+...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%SSS++++%%%%%%%%%%%%%%%%%%%%%%%%%%%..............S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%S+++++.%%%%%%%%%%..........?%%%................%%%%..........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%++++...%%%%%%%%%%SSS............+++....+++.............SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%++.....%%%%%%%%%SSSS.........+....+.+....+..+......SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%.....**%%%%%%%%SSSSS...+..+......+.............SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%...****%%%%%%%SSSSSS...........+......+..+.SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%.******%%%%%%SSSSSS......@@.....@@......SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%*****%%%%%%SSSS.......@......@.......SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%******%%%%%%%%SS..........SSS.........%S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%..******%%%%%%%%%%%......................%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%....****%%%%%%%%%%%%%%.......S.............%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%++.....*%%%%%%%%%%%%%%%%%%.....%%%.S.........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%++++....%%%%%%%%%%%%%%%%%%%%%?......%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%S+++++..%%%%%%%%%%%%%%%%%%%%%%%%%............?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%SSSS++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%.SSSSS++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%......?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Weather

This command obtains the weather information of a specified location using

wttr as the weather service.

4b3d7f188f9c588e13d03e82db617c15.gif

people

This is an inbuilt people manager that can be used to save profiles of people and related information, like their birthdays, likes, and some personalized notes for them.

# To add people(or a friend)

$ yoda people setup

# To show added friends

$ yoda people status

--------------------------------------

Mob | DOB | Name

------------|------------|------------

7503160111 | 1994-06-26 | Joy

7503160112 | 1994-05-26 | Lobo

# To add what people like(or a friend likes)

$ yoda people like

# To add personalized notes for people(or friend)

$ yoda people note

# To view likes of your added people

$ yoda people likes

Joy

Likes:

1: #petry

2: #acting

# To view personalized notes for added people(or friend)

$ yoda people notes

Lobo

Notes:

1: stop saying start doing

2: keep chin up

lyrics

This command can be used to get the lyrics of a song.

$ yoda lyrics

Enter the artist name:

imagine dragons

Enter the title name:

thunder

--------Lyrics--------

Just a young gun with a quick fuse

I was uptight, wanna let loose

I was dreaming of bigger things in

food

Use this command to get suggestions related to food.

# To get a restaurant suggestion in your city:

$ yoda food suggest_restaurant

What city are you in? Berlin

What type of food are you interested in? Chinese

Why don't you try THIS restaurant tonight!

Shaniu's House of Noodles on Pariser Str. 58

Book a table at +493091552605

# To get a drink suggestion

$ yoda food suggest_drinks

Like you need a drink you look. Hmmmmmm.

---------------------Jello shots---------------------

Ingredients:

Vodka x 2 cups

Jello x 3 packages

Water x 3 cups

Instructions: Boil 3 cups of water then add jello. Mix jello and water until jello is completely disolved. Add the two cups of vodka and mix together. Pour mixture into plastic shot glasses and chill until firm. Then, eat away...

# To get a recipe suggestion

$ yoda food suggest_recipes

Categories: American, British, Canadian, Chinese, Dutch, Egyptian, French, Greek, Indian, Irish, Italian, Jamaican, Japanese, Kenyan, Malaysian, Mexican, Moroccan, Russian, Spanish, Thai, Unknown, Vietnamese

Choose a category above or type 'Random' for a random recipe suggestion: Random

---------------------Spicy Arrabiata Penne---------------------

Ingredients:

penne rigate x 1 pound

olive oil x 1/4 cup

garlic x 3 cloves

chopped tomatoes x 1 tin

red chile flakes x 1/2 teaspoon

italian seasoning x 1/2 teaspoon

basil x 6 leaves

Parmigiano-Reggiano x spinkling

Instructions: Bring a large pot of water to a boil. Add kosher salt to the boiling water, then add the pasta. Cook according to the package instructions, about 9 minutes.

In a large skillet over medium-high heat, add the olive oil and heat until the oil starts to shimmer. Add the garlic and cook, stirring, until fragrant, 1 to 2 minutes. Add the chopped tomatoes, red chile flakes, Italian seasoning and salt and pepper to taste. Bring to a boil and cook for 5 minutes. Remove from the heat and add the chopped basil.

Drain the pasta and add it to the sauce. Garnish with Parmigiano-Reggiano flakes and more basil and serve warm.

feedback

To create an issue in the github repository simple thing that shows a link. Yeesssssss.

81b1e22694d1b5c0ce7b8f03e8666708.gif

ciphers

Use this command to encrypt or decrypt text using various classical ciphers

$ yoda ciphers encrypt

0: Atbash

1: Caesar

2: ROT13

3: Vigenere

Choose a cipher: 3

The text you want to encrypt: Mary had a litle lamb

The encryption keyword: mango

ZBFF WNE O SXGUZL ANNP

$ yoda ciphers decrypt

0: Atbash

1: Caesar

2: ROT13

3: Vigenere

Choose a cipher: 3

The text you want to decrypt: ZBFF WNE O SXGUZL ANNP

The encryption keyword: mango

MARY HAD A LITTLE LAMB

Packages and services used

Click: for building command line application

pychalk: Colors in terminal

apiai: api-ai for natural language understanding

pyyaml: for parsing yaml files

emoji: emojis!

lepl: for formatted parsing

pycrypto: To encrypt / decrypt your password

pyspeedtest: To test network bandwidth

forex-python: Foreign exchange rates and currency conversion

dulwich: for git

PyGithub: for using Github API v3

Gravit: for creating the logo

chardet: universal character encoding detector

Codecov: code coverage dashboard

coverage: For code coverage testing

requests: For HTTP requests

nose: For unit testing

urllib3: HTTP client

Certifi: Python SSL Certificates

idna: For the domain name

GeoIP2-database: For geographical IP lookups

future: the layer of compatability for Python 2/3

News API: Used to get the top headlines from Hacker News

Forismatic API: Get random quotes that are used in the chat module

Cocktail DB: Used to search for a drink and to get a random drink

Words API: Used to get the definition of a word

Requests: Used for online http requests/services

wttr: Used for getting weather information

file.io: Used for fileshare

HackerEarthAPI: Used to run code

lyrics.ovh: Used for lyrics

Yoda's illustration SVG was taken from here

WhoIs: Used for getting information about domains.

Contribute, you must

Please refer to the contributing guidelines for contributing to this project. This project was made possible by contributions from many awesome people.

In the news

Changelog

v1.0.0

Related milestone: v1.0.0

Changes in this version:

Docker setup

Load modules on demand

Mock external services in tests

Support for custom commands

Currency conversion

Weather functionality

Money Manager: monthly expenses

Gif creator

Site checker

IP Lookup

Grep

Horoscope

Suggest drinks

Suggest recipes

Small bug fixes and improvements

v0.4.0

Related milestone: v0.4.0

Changes in this version:

Added goals and analysis

Added reading list

Enhancements to diary

Better documentation and code quality than before

Added more tests

Security alert fixes

Various bug fixes

v0.3.0

Related milestone: v0.3.0

Changes in this version:

Support for both Python 2 and Python 3

Command aliasing

Port scanning

More features in love module

Hackernews

yoda inspire

Increased test coverage

Bug fixes

v0.2.0

Related milestone: v0.2.0

Changes in this version:

Idea list

Reading list

Automated tests

Test coverage

Custom config directory location

Minor bug fixes

v0.1.0

Initial release.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值