aminojs / amino.js Goto Github PK
View Code? Open in Web Editor NEWA powerful JavaScript library for interacting with the Amino API :star2:
License: MIT License
A powerful JavaScript library for interacting with the Amino API :star2:
License: MIT License
Describe the bug
The Array when getChat is Called is stacking / filling up without any clearing. So with every call the Array Fills up.
To Reproduce
Steps to reproduce the behavior:
//This Snippet shows the Bug in action!
let chats = await Amino.getJoinedChats(community);
chats.threads.forEach(async (el) => {
let chat = await Amino.getChat(community, el.threadId);
console.log(chat);
})
Expected behavior
It should return one Messages Array per Call and clear it right after, instead it filles the Array endllessly.
Desktop (please complete the following information):
Nothing major, but I see a few stray .DS_Store
files.
http://service.narvii.com/api/v1/x159192087/s/admin/operation?start=0&size=10
//FOR Moderration Operrations
//maybe a helper function to get permission level
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
(Please describe how we could reproduce the Error you encountered)
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
http://service.narvii.com/api/v1/x159192087/s/flag?status=pending&type=all&start=0&size=1
//FOR Flagged Stuff
//only Leaders can use this
Describe the solution you'd like
Endpoint:
DELETE /api/v1//s/chat/thread//member/?allowRejoin=<0|1> HTTP/1.1
Describe the bug
We noticed that a Testcase is failing in our testing for Release 3.0. I think this is due to a backend change in Narvii's Systems.
To Reproduce
Login a client with the AminoJS Libary, then call the Function:
<AminoJS>.getUserBlogs(comID, userID, count);
OR
start the Testcases with npm test
The Bug should then be visible there.
Expected behavior
The <calledVariable>.blogs
should be an array. The testing system says that it's not.
Screenshots
Here is the testcase result with another account:
And here is the testcase with the testing Account and more debug logs. (JSON in text under screenshot)
== Raw JSON response==
{
"blogs": null,
"status": "ok",
"error": null
}
Desktop (please complete the following information):
Describe the bug
Vulnerabilities were found on the Amino.JS dependencies
To Reproduce
Steps to reproduce the behavior:
None. Was found after executing npm install
Expected behavior
A clear and concise description of what you expected to happen.
No vulnerabilities be found
Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot can't take(because i'm on a Mac and i still didn't found out how to take one
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
I ran a audit on the packages and got this output:
=== npm audit security report ===
# Run npm install [email protected] to resolve 9 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/helper-get-function-arity > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/helper-get-function-arity > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/template > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/template > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
# Run npm install [email protected] to resolve 3 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Insufficient Entropy │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ cryptiles │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ request > hawk > cryptiles │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/720 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ sshpk │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ request > http-signature > sshpk │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/606 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Out-of-bounds Read │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ stringstream │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ request > stringstream │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/664 │
└───────────────┴──────────────────────────────────────────────────────────────┘
# Run npm install [email protected] to resolve 6 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > inquirer > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > table > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > inquirer > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ eslint > table > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
# Run npm update lodash --depth 6 to resolve 7 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ request-promise │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ request-promise > request-promise-core > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/template > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/template > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/helper-function-name │
│ │ > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > @babel/types > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ babel-eslint │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ babel-eslint > @babel/traverse > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/782 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ request-promise │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ request-promise > request-promise-core > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 25 vulnerabilities (11 low, 12 moderate, 2 high) in 404 scanned packages
Note: I'm currently working to fix the vulnerabilities. Will be commiting to the v3.0.1 update when i finish it(Or should i commit to the V3.0.0-nightly straight away?)
I would like to remove the dependencies "request" and "request-promise", hence they are only used one Time in upload.js
. Since Request is not really used and Narviis API is accepting Base64, we can maybe migrate that to isomorphic-fetch. Since @akatsukilevi you are currently our API dumper i want your Opinon on this. :)
I want to do a bot for Amino but I can't find a method to get the last message, fire an event and send a message (not using intervals), maybe like Telegram bots API
function getCommentsPost() returns only one comment (
Describe the solution you'd like
Endpoint:
POST /api/v1//s/chat/thread//member/invite HTTP/1.1
JSON:
{
"uids": ["Array of UserID's to be invited to Chat", "MUST BE ABLE TO (i.e. the invitee needs to follow the inviter)"],
"timestamp": "A JS Timestamp"
}
Describe the bug
I do try use version 3.0. in electron app. After > yarn start i get:
App threw an error during load
TypeError: Amino.AminoAPI is not a constructor
To Reproduce
Copy amino.js folder to app folder and > yarn add [path to amino.js folder]
yarn start
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
App threw an error during load
TypeError: Amino.AminoAPI is not a constructor
at Object. (F:\DEV\JS\electron\Amino\amifeya\src\index.js:8:18)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
at Function.Module._load (internal/modules/cjs/loader.js:601:3)
at loadApplicationPackage (F:\DEV\JS\electron\Amino\amifeya\node_modules\electron\dist\resources\default_app.asar\main.js:105:12)
at Object. (F:\DEV\JS\electron\Amino\amifeya\node_modules\electron\dist\resources\default_app.asar\main.js:153:5)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
at Function.Module._load (internal/modules/cjs/loader.js:601:3)
at Object. (F:\DEV\JS\electron\Amino\amifeya\node_modules\electron\dist\resources\electron.asar\browser\init.js:197:8)
at Module._compile (internal/modules/cjs/loader.js:808:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
at Module.load (internal/modules/cjs/loader.js:677:32)
at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
at Function.Module._load (internal/modules/cjs/loader.js:601:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:873:10)
at internal/main/run_main_module.js:21:11
Desktop (please complete the following information):
Additional context
me code is:
// - - - Amino - - -
var Amino = require('amino.js'); // use the Amino.js api
const AminoAPI = new Amino.AminoAPI();
AminoAPI.proccessAction(Amino.login('[email protected]', 'mypass'), function(data) {
// Here is the success handler
console.log('AMINO LOGIN SUCCESSFULL !');
}, function(error) {
// Here is the error handler
console.log('AMINO LOGIN ERROR !');
});
// - - - Amino end - - -
Add new test cases and examples for the new users fetching function
This is more like a "hey wouldn't it be nice if we had this?" than something 100% related to Amino.JS, but well...
It would be nice if there was a documentation about the Amino's REST API instead of relying only on code, somewhere where all (or almost all) endpoints would be documentated (Path, method, what the path does, etc)
But this is only a random idea I had while I was (re)writing my own Amino reverse engineered library, I wanted to do it, buuuut I wanted to know if other lib authors would be interested in sharing their findings 😊
When calling sendImage this is the Response from the API:
{ "api:statuscode": 104,
"api:duration": "0.004s",
"api:message":
"Invalid Request. Please update to the latest version. If the problem continues, please contact us.",
"api:timestamp": "2019-03-02T21:16:55Z" }
(changed the quotes from ' to ")
Hello!
First off: We need a New CI / CD for Github if there is any Idea which one we could take i would happly Accept Testing that.
The Old Repo: https://gitlab.robsys.space/Kikai/KikaiFramework is no longer for use.
Still we need to finish our Goal and Document the Code more.
@coffeeboo, maybe you should add me on Discord (Rob#4392)
Describe the bug
I want to send a GIF with sendImage.js module
To Reproduce
I use this code:
await amino.sendImage(
auth.amino.community,
receiver,
'example.gif'
)
Expected behavior
The receiver should be able to see the GIF
Desktop (please complete the following information):
Community System.
community.join('id');
and community.leave();
So that users dont need to give the Com. Variable at every little Step that they are doing.
The Documentation in Gitlab-Pages is not working.
Describe the bug
In amino.getChat() there is a bug that the authors name is not defined
Expected behavior
author.name is undefinded, due to backend change.
Describe the bug
If Amino is down (Statuscode 500, etc.) then JSON.parse tries to compile the HTML Nginx File to JSON which is not going to work.
To Reproduce
Wait until Amino Breaks and then try to interact with the API. (easy tbh since amino is down every 3 Hours or so)
Expected behavior
A Error Handler trying to tell the person with a different Status code that Amino is Down.
Hence there are a lot of new Features comming to AminoJS i would like to have all of them Testcased hence if there is a backend change from Narvii / Amino Inc. we can change up the Libary after that.
Need more examples how to use framework, more than "login" only please !
How i can use getJoinedComs(); for framework mode ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.