Giter VIP home page Giter VIP logo

rotten-tomatoes-letterboxd's People

Contributors

dependabot[bot] avatar moglum avatar olshansk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rotten-tomatoes-letterboxd's Issues

Directors all missing, some movies missed, linefeed characters not handled, WTS also possible?

Hi

Firstly, many thanks for making this available!

I'm getting an empty Directors field for all movies in the CSV.
Scrolling to the end of my reviews page gives me 1,419 movies rated (counted with Ctrl F), but I'm only getting 1,318 in the CSV.
A few of my reviews contain linefeed characters, which is not* handled in the CSV. They should probably be converted to spaces.
I also have 352 entries on my WTS list. Replacing movieRatings with wts in the index.js URI suggests it's possible to export them, but the format returned is different – no review age for instance – and the script stops. Any ideas?

My Rotten Tomatoes ID is 136857423 if you have time to take a look.

Regards and thanks again.

*Apologies, it depends what I use to open or import the file. If you want to find them to confirm, many are adjacent to literal <br>s.

Hi there, same mission, no programming, crap results

Hey there, not big on programming, but after I going through this maze of new stuff it ended up on a dead end:
It only imported the first page of movies and repeated them ad nauseum.
Then I went back to Rotten Tomatoes and it seems they did away with the infinite loading and now you must click for the next page.

Any chance you could update the code eventually? Really need to get rid of rotten tomatoes.
Cheers

any idea of what I'm doing wrong?

I get this:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node index.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/santiago/.npm/_logs/2020-05-20T06_30_30_522Z-debug.log

WTS version of the script

For those of you who would also like to convert convert your "want to see" list into CSV format, this just requires a couple small tweaks to the index.js script. This also answers Issue #2 asked by @southisup.

If I get a response to this, I will submit a pull request which can allow for CSV for both myRatings and wts.
Otherwise you can just copy this gist into index.js. Cheers.

const rp = require('request-promise-native')
const fs = require('fs')
const { DateTime } = require('luxon')

const URI = 'https://www.rottentomatoes.com/napi/userProfile/wts/'

// Change to your Rotten Tomatoes user ID
const USER_ID = 'YOUR_ID'

async function getRatings(cursor) {
  try {
    let res = await rp({
      uri: URI + USER_ID,
      json: true,
      qs: { endCursor: cursor },
    })

    console.log('Got a chunk.')

    if (res.pageInfo.hasNextPage) {
      let nextRatings = await getRatings(res.pageInfo.endCursor)
      return res.wtsMedia.concat(nextRatings)
    } else {
      return res.wtsMedia
    }
  } catch (err) {
    console.error('Oops, something went wrong!', err)
  }
}

function createImportFile(ratings) {
  let out = 'Title, Year'

  ratings.forEach(r => {
    if (!r) {
      return
    }
    if (!r.item) {
      return
    }

    let {
      item: { title, releaseYear },
    } = r

    out += `"${title}",${releaseYear} \n`
  })

  fs.writeFile('importMeWTS.csv', out, 'utf8', err => {
    if (err) console.log(err)
    console.log('Import file created - importMeWTS.csv')
  })
}

getRatings()
  .then(ratings => {
    fs.writeFileSync(
      'rawRatings.json',
      JSON.stringify(ratings, null, 2),
      'utf8'
    )
    console.log('Raw ratings file created - rawRatings.json')
    createImportFile(ratings)
  })
  .catch(err => console.error(err))

// let ratings = JSON.parse(fs.readFileSync('rawRatings.json'))
// createImportFile(ratings)

Is the script still up ?

Hey :)

I've tested your script and it won't work :(

Here's the error i get :

`➜ rotten-tomatoes-letterboxd git:(master) ✗ npm start

[email protected] start
node index.js

Oops, something went wrong! RequestError: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["cookie"]
at new RequestError (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:185:22)
at Request.emit (node:events:527:28)
at Request.start (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:753:10)
at Request.end (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:1511:10)
... 2 lines matching cause stack trace ...
at processImmediate (node:internal/timers:466:21) {
cause: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["cookie"]
at ClientRequest.setHeader (node:_http_outgoing:579:3)
at new ClientRequest (node:_http_client:262:14)
at Object.request (node:https:353:10)
at Request.start (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:751:32)
at Request.end (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:1511:10)
at end (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:564:14)
at Immediate. (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:578:7)
at processImmediate (node:internal/timers:466:21) {
code: 'ERR_INVALID_CHAR'
},
error: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["cookie"]
at ClientRequest.setHeader (node:_http_outgoing:579:3)
at new ClientRequest (node:_http_client:262:14)
at Object.request (node:https:353:10)
at Request.start (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:751:32)
at Request.end (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:1511:10)
at end (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:564:14)
at Immediate. (/Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/node_modules/request/request.js:578:7)
at processImmediate (node:internal/timers:466:21) {
code: 'ERR_INVALID_CHAR'
},
options: {
uri: 'https://www.rottentomatoes.com/napi/userProfile/movieRatings/Rk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham',
json: true,
qs: { endCursor: undefined },
headers: {
cookie: "curl 'https://www.rottentomatoes.com/profiles/Rk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham' \\n" +
" -H 'authority: www.rottentomatoes.com' \\n" +
" -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7' \\n" +
" -H 'accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7' \\n" +
" -H 'cache-control: max-age=0' \\n" +
-H 'cookie: akacd_RTReplatform=2177452799~rv=87~id=4edea432f05c395924a44df78ba30c60; _cb=BmqJnyCCV69kCHnL44; _admrla=2.2-d30af6c12eb177e9-def014fe-fe0d-11ed-9985-0fa56e2afb8c; QuantumMetricUserID=4bfabf0f3095bb46b3c513e2333f79e7; OptanonAlertBoxClosed=2023-05-29T10:57:38.350Z; OTAdditionalConsentString=1~43.70.89.122.149.162.266.311.449.482.505.523.1033.1097.1127.1419.1456.1465.1558.1712.1725.1810.1845.1942.2109.2135.2334.2343.2571.2572.2577.2605.2628.2646.2657.2677.2707.2912.2958.3005.3024.3038.3118.3180.3292.3296.3300.3306.3307.3308.3314.3315.3316.3318.3324.3327.3328.3330.3531.3831.3931; usprivacy=1---; _ALGOLIA=anonymous-57acea0e-3e8c-4391-90d6-bb428af7514f; number_of_review_starts=1; eXr91Jra=A72EHGeIAQAAJKAlTZbC4zPvOXAK2M-4TBtI0pat5BDONi7va1hfjCNEIaKjAVJ_CSqucn0ewH8AAOfvAAAAAA|1|1|7c786a3378c36d9ac192169ee895be0cbf4272e0; fw_vcid2=f4ce1be8-adaa-4f74-aa1d-b080150a376c; akamai_generated_location={"zip":"""","city":"AUBERVILLIERS","state":"IDF","county":"""","areacode":"""","lat":"48.92","long":"2.38","countrycode":"FR"}; ak_bmsc=15E683415623B5BB796A938DFC1E6704~000000000000000000000000000000~YAAQyONIFxmoiPmKAQAAszhlGRVr/fBmOcC+b7qFC2grPopw/scxmhEIiC3/LduKKyQOznom4/05WjCGCbEb+GRnTS+nXU9qAmQQlcsEjCfw5G1vhLPGMLX25VQMhiWuqEwnOYBgSY8JZjrZP7gC0DUIpBDPRM6etPZqVVbg3FqTaEJiVxEpx/0Y2kiAGYVJvRdOuiWLPsu2MYgR+mB+7At6WqybQS3TQs0uUk8RviqntDlKBhi9U1KueetC2zPNZdoj3iX2r2Vt91PjEk4SVEhV16UFUul/Y1evX3Xuc4c7EIkks+rQ9hB3XM86OJmJtvnXQCr0Fg106wFXiB7jeNtPISRQhQYLfXjNgh3rjxHOMSZwTMdmA+Ammf7YenOrimaITeEJivK7npfcH4Up; check=true; algoliaUT=92913676-6751-43b4-a218-d0c85c86ecde; AMCVS_8CF467C25245AE3F0A490D4C%40AdobeOrg=1; AMCV_8CF467C25245AE3F0A490D4C%40AdobeOrg=-408604571%7CMCMID%7C21593905255393131281902671583912764916%7CMCAAMLH-1697542947%7C6%7CMCAAMB-1697542947%7CRKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1696945347s%7CNONE%7CvVersion%7C4.6.0%7CMCIDTS%7C19641; s_cc=true; eupubconsent-v2=CPshhTAPshhTAAcABBENDaCgAP_AAAAAACiQHGtf_X_fb2_j-_58f_t0eY1P9_7_v20zjhedE-8Nyd_X_L8X52M5vB16pqoKuR4ku3LBAQVlHOHcDUmw6IkVqSPsbk2Mr7NKJ7PEmlMbM2dYGH97n1XT-ZKY79_vf__z_v-v___977__7-3f3_vp_9--22AAAAQJABAXmOgAgLzJQAQF5lIAIC8w.f_gAAAAAAAAA; __host_color_scheme=W6g7HV0V-s-XpO4Y8ngJxi1e8ZV1srWGctcAtX1r95CHsDzakdjE; __host_theme_options=1696938146698; _cb_svref=null; QuantumMetricSessionID=0e0f6d578ad1808f9b55d7404e6ae764; QSI_ReplaySession_SampledOut_ZN_6SDb0uWojRgLmmN=true; cognito=%7B%22accessToken%22%3A%22eyJraWQiOiIyb21zK2VhNml0UCs1RHZmUGxrXC9qdG5uWWpXTzFqR0dzUUJEWHdOQXJQWT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTdhZGU1NC00MGRhLTRjOTQtYTRlZi1hNzBjMzY2ODQyNjQiLCJ0b2tlbl91c2UiOiJhY2Nlc3MiLCJzY29wZSI6ImF3cy5jb2duaXRvLnNpZ25pbi51c2VyLmFkbWluIG9wZW5pZCBwcm9maWxlIGVtYWlsIiwiYXV0aF90aW1lIjoxNjk2OTM4MTU4LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21cL3VzLXdlc3QtMl80TDBaWDRiMVUiLCJleHAiOjE2OTY5NDE3NTgsImlhdCI6MTY5NjkzODE1OSwidmVyc2lvbiI6MiwianRpIjoiOTg2ZTYzZjAtMmUyYi00MGZhLWEzODctNTE4NDMzNjRkODNkIiwiY2xpZW50X2lkIjoiN3B1NDh2OGkybjI1dDR2aGVzMGVkY2szMWMiLCJ1c2VybmFtZSI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCJ9.IxAwDPT-97zpEmAWETO3jN97i1VeICZdHYP9rRhGqnfJvPM3Q0ZheJy5aHXZvdiC8Y5C9Ef-VEbWHEDJxIr64-NIrp-Fl3dzA_duYgFwSHQ5D_SCPwfR5Hl4aVU5-bNL0mBNXuzpX_ZduaSO2N48gMzUlA3GPEOuYmEd5xif1adZOZU1iu0pQqnMDpu--KpUGp_HhMepJTrgppZKxudPMNH1tI2LBWLhcT2cBrl_AsNfimnZW6Bxg5eTbt5_kIjbYezQ-WsVMS1OlDQ5M6DmG59YG5xlNdIqvojdUkviXrVjWPlCSVsCL-lYYhmWIWD4mG4ePNdwvpERyyYcb-utkg%22%2C%22refreshToken%22%3A%22eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAifQ.rTsb9PxMgfLRcCEZC4Ki6p5SBTbzGkwiptC8Ifs_AK_VSi4euO2RFxd9KadJFrB6It2NtMVwsFDwGuhus46yi6CzZLUaVf09vDHA41Hnvvx-ASOC6PK3NwgzITI6qOAAqER4CxauBxG8g2097HMvnV9k33BuNNbFaX4Yu5rN6Cvm46L-_aolsihe40v3qXhFnoxqWx9FY2inSslxNfrjwi4jk2JWXw6epgTZvV7Yk8TI7-_YZ_pr2udOarCk7aMT7sde2NI1N6VN4HI8RgWwL5v9bicfUwNAl-eiXHsMStjPswxCHXFmd9Yv_aDNcBDEWMpqJTcOl7Vk2VBx1JLdqQ.klpjTIVTU2R4m2Li.-MwNSwE1SgNVO9g7I_5yPHdD-DE8NLRXilHiVWwphntUevv9B01Y4QFyHukaXaSN9godUTcw93HeLPWeohjeI8WHD66sutWM-RDwtZshxiIUvjuvQYoJaj9CmMiK9UAT84JnkeEIS9c9hwGjOYEAoQqKuOm-CawDeiF3eYThDiy0ERN9RDDKaeKXFFYBzTAmBYNEucHd4aDModOLjQQqNQpYvDdCMpiFX4ntD98SHSH1xCgc7SHghVu9ECN_3M402QKmKyK-Q-w106kgX_4o5UTGtcaEGYNN0y2p8MBCWYNlcR1pvp7kTPrUN8BkL0BiLtEtRvCE85-YZgpdMZSH-OUaKcQ3A55Y0lOf1Zq0zxhGdNZoBLfuAwfxE5D0ZWmXr-793VIvGfh3YCd5SP7LHNrrBfvPeDIHMkgykBdf2lOTdK20q72aPQxmHoV8JQVLEhMp8_SVC4LgR7srRIYEgh99nONN7RTTP3XI1Vm6DHHGAH9iqntRxW5Ffx8A7dUwx_3m-YGhMa0P-nwEj6mYLACjLNyXyTGqcflj9pK57NRj5qDMWhTFr9SzGFl9LVCHVfGVG_32pJMyC4N5JEAmq4pGFbA6Wckza7DERrk5A2LljjxCx34NN4yVUPSCKBltek0znQOL-cCcqkbkGk7DwVnLAFSybj0CJEPj30qYqX0To5cnQJEPiQrH4X0pr3RvWA96n5VD8bAexFwBkCOiGEAQIFNCuUMxH1uXq2ihnLqIS1RjwNnnTlXGk-NBFUYxbZMG5AmI2E6A-jcZczouUfdqYTK-BBrGkuCtF_UhmktM61zjk-gcQ0oGAcENetoTIpWGQCngVr_7UoRDHyL8MtXYCZuvZZ7r52n5_ann3HgKF82HnWgkJeBHFzlY19VdY_NnBaiO1dNhsqbkAhdc-BdlOzWLdkhBJv19HQ7j_9zJS8rowec4tNiNbVci49AkZ1OscKzCAik1VJBYhVDhIif7GEEZiaTiBktNe0LZiBO7RkPFvqqGv3f4-O7isgvrj3Ge7ok5oAu-vPxNnYDDIdROvywAFbx5WpLIfjFXYSv3B3BNL0wqYT3ypeL3nCFRvuvc9vkdNUg64DpHMnhJhoGZzerfziYuqL3zB9Aw_5JwxhyG6BvJObn_PSO8G5umDSwYUDhI_5q1okpAoRtT-DIQCyTPbO7LESWbtGBJeK9ERue9eOsgYLJcJ3-Dxz0EwMQ0I_AUkduZNqlC3EbRGflL-XCVW5tI9P-GihDcnfqON-m5JoIrYeNQxnDldhT9xnO_wzwwQlhnHasckRDRTYbFqqDkOZCR.lQuWqe5prmLvvVdz2g7M_Q%22%7D; id_token=eyJraWQiOiIxZVQySkNHWGdmRStSSis0bW5YYnNcLzVXU2NPU0hyM2NYV1pmWWpmeHhFST0iLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiSWRvSmRVTzh4aFhtR09GYVJTMUxoZyIsInN1YiI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tXC91cy13ZXN0LTJfNEwwWlg0YjFVIiwiY29nbml0bzp1c2VybmFtZSI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCIsImdpdmVuX25hbWUiOiJQaWVycmUtTmljb2xhcyIsIm5vbmNlIjoiZ0NMbGN0R3ZMdFhSaDVtSVFmZ0JudGFKTVBVZmp3YnBFeXFlMlhTdURiX1k5cUJYU3FqTzM0WG0ycTQ1YUtyX0NHbEdSdG5EVXpkb3k1QTRMc18tT3hTZDQxVGlUeHRwWExFZVd4NEdTMGVMY1dBYWNaZmxVZE1LUzRpanU2alFONzNvUXFRWTNyb05TaUlJa2FMTnVXSTczUzZYblBWTmx5SnFhRkNLRTZzIiwicGljdHVyZSI6Imh0dHBzOlwvXC9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tXC9hXC9BQ2c4b2NJOHh3TTZfTE5aRjBEMnZXT1A1d1FVa3JfbzJMdEQtMG4xekkyeDBvVXB4Mm05PXM5Ni1jIiwiYXVkIjoiN3B1NDh2OGkybjI1dDR2aGVzMGVkY2szMWMiLCJpZGVudGl0aWVzIjpbeyJ1c2VySWQiOiIxMTM3MDQ1MTA3NTc1MDkzMzI2NzYiLCJwcm92aWRlck5hbWUiOiJHb29nbGUiLCJwcm92aWRlclR5cGUiOiJHb29nbGUiLCJpc3N1ZXIiOm51bGwsInByaW1hcnkiOiJmYWxzZSIsImRhdGVDcmVhdGVkIjoiMTY4MjI4NjUzOTk0NiJ9XSwidG9rZW5fdXNlIjoiaWQiLCJjdXN0b206c2lnbnVwX2RhdGUiOiIyMDIyLTA4LTI1IDIxOjQxOjI3IFVUQyIsImN1c3RvbTpydF9pZCI6Ijk3OTUzMTgwNSIsImF1dGhfdGltZSI6MTY5NjkzODE1OCwiZXhwIjoxNjk2OTQxNzU4LCJpYXQiOjE2OTY5MzgxNTksImZhbWlseV9uYW1lIjoiWmluc291IiwiZW1haWwiOiJwbnppbnNvdUBnbWFpbC5jb20iLCJjdXN0b206Y291bnRyeV9jb2RlIjoiRlIifQ.Ko57lSZw6j-Tn6BVBgNe4kDPt4Mi9RiP_nHz89W-tuTXaxPToe-Bq5a2AlNhcq__8vgVw_TFu2YGu_cza5DB_cOuKCPlgmFf-qYKuC2liNPntysL-WlhnWnIjbtL8kDSKrrVogIiItCL7kUqQWm9G0Udcp_coYSszQaSJEJ0gAyTiSxoltjLUG4m9Xyu85Fy1hBaedJOfv4X00ri9SHjRSH4YkCZTfJS_zU57AF0_VlhsmcnNKvphQOtlzW1MFzNgoqm03YJFaCBtNR_XhQafvPD6Z6LVmVf-F1OB8MmfmQ8NtVFMv3D4IR-ilcqMYFQK4P-n9xyg0BmGF5Vfesf5A; __gads=ID=8470b7da7dccffd6:T=1685357858:RT=1696938169:S=ALNI_MaIS1BGNNFE5SptaGCaPIMuy1s0pA; __gpi=UID=00000c37fa5c1f07:T=1685357858:RT=1696938169:S=ALNI_MbL9f0TevXFwhoQ8GJ6U1K5yQjttw; OptanonConsent=isIABGlobal=false&datestamp=Tue+Oct+10+2023+13%3A42%3A52+GMT%2B0200+(heure+d%E2%80%99%C3%A9t%C3%A9+d%E2%80%99Europe+centrale)&version=202209.1.0&hosts=&consentId=ba3cb9e3-5428-4215-a146-d4ce4c559d01&interactionCount=2&landingPath=NotLandingPage&groups=dummy%3A1%2CFOOF%3A1%2C1%3A1%2C6%3A1%2C4%3A1%2CSTACK8%3A1%2C7%3A1%2CSTACK16%3A1&AwaitingReconsent=false&geolocation=FR%3B; mbox=PC#76a5e2e3ab3244e6b2b24fc12170c500.37_0#1760182973|session#da3097cfdf13449e8da7190776d7eaf6#1696940033; s_sq=%5B%5BB%5D%5D; _chartbeat2=.1647722719285.1696938172646.0000000000000001.CvXuu3B05nI6CiyphIBTtUNEDgErJg.7; sailthru_pageviews=6; mps_uuid=64807ddb-ad8f-4d20-b35e-60816e62111b; _awl=2.1696938173.5-9ff33f73f7bbc06bff083af0e86cc658-6763652d6575726f70652d7765737431-7; bm_sv=F3D95187AF75C9CB3940B340BAF3D093~YAAQyONIF1G6iPmKAQAAC6NlGRVjD6+hh4gsBlrLmAg5gFyGez8iBWLbmR8FQr7fAnyaFX4HQ1pA11gU/CRYR8iMFqmzRSR4dJP/TdX/uZyTTj4oMlDVElwmV6O+2tsKMscBvC1eWXv7ROShtlFrdMtVcwiJf2KMwPMeHa9Qmd0t7/vpbMJdDfgYYaE1gk6BfmX9qcVysYLXbYoIxLomAZJchwYtrWqWO0SzS0reH7LXsn2HMk2rEH8TpDdnmRy7MAMRokZzslXJ~1; QSI_HistorySession=https%3A%2F%2Fwww.rottentomatoes.com%2F~1696938148963%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2Fauth%2Fstart%3Fref%3D%252F~1696938149554%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2F~1696938151087%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2Fprofiles%2FRk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham~1696938173115; cto_bundle=SuNA719ZRVJLZjVKdDFmUHdEajNsQXdKbHZmQlJ1clM2cmJyeVE4d2I4SU1LN1F1OUVpTXJINlo2V2VxYVdOVGc2dVRXeEw4OXZ4NWczWXlzOWVieWxTcDFUT3Rwb3E5RU4zYWlzZmZrOVBLOHJIRWFSTTRVZjhlUkJ4TUhsJTJGTVYlMkYzWU9OemcwQzBGOUNuUXA2djg4T2tsWlRnVmhudXJhcWdDYU9aZExzTjFyTHM0JTNE' \\\n +
-H 'if-none-match: W/"15b70-ZjZXQ/U58nfXbBRV4aSTHPTFHss"' \\\n +
" -H 'referer: https://www.rottentomatoes.com/' \\n" +
-H 'sec-ch-ua: "Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"' \\\n +
" -H 'sec-ch-ua-mobile: ?0' \\n" +
-H 'sec-ch-ua-platform: "macOS"' \\\n +
" -H 'sec-fetch-dest: document' \\n" +
" -H 'sec-fetch-mode: navigate' \\n" +
" -H 'sec-fetch-site: same-origin' \\n" +
" -H 'sec-fetch-user: ?1' \\n" +
" -H 'upgrade-insecure-requests: 1' \\n" +
" -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36' \\n" +
' --compressed'
},
callback: [Function: RP$callback],
transform: undefined,
simple: true,
resolveWithFullResponse: false,
transform2xxOnly: false
},
response: undefined
}
TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined
at Object.writeFileSync (node:fs:2163:5)
at /Users/pierre-nicolas/sandbox/rotten-tomatoes-letterboxd/index.js:94:8 {
code: 'ERR_INVALID_ARG_TYPE'
}
➜ rotten-tomatoes-letterboxd git:(master) ✗

`

And my code is :

const USER_ID = 'Rk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham'
const COOKIE = 'curl 'https://www.rottentomatoes.com/profiles/Rk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham\' \\n' +
' -H 'authority: www.rottentomatoes.com\' \\n' +
' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7' \\n' +
' -H 'accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7' \\n' +
' -H 'cache-control: max-age=0' \\n' +
' -H 'cookie: akacd_RTReplatform=2177452799rv=87id=4edea432f05c395924a44df78ba30c60; _cb=BmqJnyCCV69kCHnL44; _admrla=2.2-d30af6c12eb177e9-def014fe-fe0d-11ed-9985-0fa56e2afb8c; QuantumMetricUserID=4bfabf0f3095bb46b3c513e2333f79e7; OptanonAlertBoxClosed=2023-05-29T10:57:38.350Z; OTAdditionalConsentString=143.70.89.122.149.162.266.311.449.482.505.523.1033.1097.1127.1419.1456.1465.1558.1712.1725.1810.1845.1942.2109.2135.2334.2343.2571.2572.2577.2605.2628.2646.2657.2677.2707.2912.2958.3005.3024.3038.3118.3180.3292.3296.3300.3306.3307.3308.3314.3315.3316.3318.3324.3327.3328.3330.3531.3831.3931; usprivacy=1---; _ALGOLIA=anonymous-57acea0e-3e8c-4391-90d6-bb428af7514f; number_of_review_starts=1; eXr91Jra=A72EHGeIAQAAJKAlTZbC4zPvOXAK2M-4TBtI0pat5BDONi7va1hfjCNEIaKjAVJ_CSqucn0ewH8AAOfvAAAAAA|1|1|7c786a3378c36d9ac192169ee895be0cbf4272e0; fw_vcid2=f4ce1be8-adaa-4f74-aa1d-b080150a376c; akamai_generated_location={"zip":"""","city":"AUBERVILLIERS","state":"IDF","county":"""","areacode":"""","lat":"48.92","long":"2.38","countrycode":"FR"}; ak_bmsc=15E683415623B5BB796A938DFC1E6704000000000000000000000000000000YAAQyONIFxmoiPmKAQAAszhlGRVr/fBmOcC+b7qFC2grPopw/scxmhEIiC3/LduKKyQOznom4/05WjCGCbEb+GRnTS+nXU9qAmQQlcsEjCfw5G1vhLPGMLX25VQMhiWuqEwnOYBgSY8JZjrZP7gC0DUIpBDPRM6etPZqVVbg3FqTaEJiVxEpx/0Y2kiAGYVJvRdOuiWLPsu2MYgR+mB+7At6WqybQS3TQs0uUk8RviqntDlKBhi9U1KueetC2zPNZdoj3iX2r2Vt91PjEk4SVEhV16UFUul/Y1evX3Xuc4c7EIkks+rQ9hB3XM86OJmJtvnXQCr0Fg106wFXiB7jeNtPISRQhQYLfXjNgh3rjxHOMSZwTMdmA+Ammf7YenOrimaITeEJivK7npfcH4Up; check=true; algoliaUT=92913676-6751-43b4-a218-d0c85c86ecde; AMCVS_8CF467C25245AE3F0A490D4C%40AdobeOrg=1; AMCV_8CF467C25245AE3F0A490D4C%40AdobeOrg=-408604571%7CMCMID%7C21593905255393131281902671583912764916%7CMCAAMLH-1697542947%7C6%7CMCAAMB-1697542947%7CRKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1696945347s%7CNONE%7CvVersion%7C4.6.0%7CMCIDTS%7C19641; s_cc=true; eupubconsent-v2=CPshhTAPshhTAAcABBENDaCgAP_AAAAAACiQHGtf_X_fb2_j-_58f_t0eY1P9_7_v20zjhedE-8Nyd_X_L8X52M5vB16pqoKuR4ku3LBAQVlHOHcDUmw6IkVqSPsbk2Mr7NKJ7PEmlMbM2dYGH97n1XT-ZKY79_vf__z_v-v___977__7-3f3_vp_9--22AAAAQJABAXmOgAgLzJQAQF5lIAIC8w.f_gAAAAAAAAA; __host_color_scheme=W6g7HV0V-s-XpO4Y8ngJxi1e8ZV1srWGctcAtX1r95CHsDzakdjE; __host_theme_options=1696938146698; _cb_svref=null; QuantumMetricSessionID=0e0f6d578ad1808f9b55d7404e6ae764; QSI_ReplaySession_SampledOut_ZN_6SDb0uWojRgLmmN=true; cognito=%7B%22accessToken%22%3A%22eyJraWQiOiIyb21zK2VhNml0UCs1RHZmUGxrXC9qdG5uWWpXTzFqR0dzUUJEWHdOQXJQWT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTdhZGU1NC00MGRhLTRjOTQtYTRlZi1hNzBjMzY2ODQyNjQiLCJ0b2tlbl91c2UiOiJhY2Nlc3MiLCJzY29wZSI6ImF3cy5jb2duaXRvLnNpZ25pbi51c2VyLmFkbWluIG9wZW5pZCBwcm9maWxlIGVtYWlsIiwiYXV0aF90aW1lIjoxNjk2OTM4MTU4LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21cL3VzLXdlc3QtMl80TDBaWDRiMVUiLCJleHAiOjE2OTY5NDE3NTgsImlhdCI6MTY5NjkzODE1OSwidmVyc2lvbiI6MiwianRpIjoiOTg2ZTYzZjAtMmUyYi00MGZhLWEzODctNTE4NDMzNjRkODNkIiwiY2xpZW50X2lkIjoiN3B1NDh2OGkybjI1dDR2aGVzMGVkY2szMWMiLCJ1c2VybmFtZSI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCJ9.IxAwDPT-97zpEmAWETO3jN97i1VeICZdHYP9rRhGqnfJvPM3Q0ZheJy5aHXZvdiC8Y5C9Ef-VEbWHEDJxIr64-NIrp-Fl3dzA_duYgFwSHQ5D_SCPwfR5Hl4aVU5-bNL0mBNXuzpX_ZduaSO2N48gMzUlA3GPEOuYmEd5xif1adZOZU1iu0pQqnMDpu--KpUGp_HhMepJTrgppZKxudPMNH1tI2LBWLhcT2cBrl_AsNfimnZW6Bxg5eTbt5_kIjbYezQ-WsVMS1OlDQ5M6DmG59YG5xlNdIqvojdUkviXrVjWPlCSVsCL-lYYhmWIWD4mG4ePNdwvpERyyYcb-utkg%22%2C%22refreshToken%22%3A%22eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAifQ.rTsb9PxMgfLRcCEZC4Ki6p5SBTbzGkwiptC8Ifs_AK_VSi4euO2RFxd9KadJFrB6It2NtMVwsFDwGuhus46yi6CzZLUaVf09vDHA41Hnvvx-ASOC6PK3NwgzITI6qOAAqER4CxauBxG8g2097HMvnV9k33BuNNbFaX4Yu5rN6Cvm46L-_aolsihe40v3qXhFnoxqWx9FY2inSslxNfrjwi4jk2JWXw6epgTZvV7Yk8TI7-_YZ_pr2udOarCk7aMT7sde2NI1N6VN4HI8RgWwL5v9bicfUwNAl-eiXHsMStjPswxCHXFmd9Yv_aDNcBDEWMpqJTcOl7Vk2VBx1JLdqQ.klpjTIVTU2R4m2Li.-MwNSwE1SgNVO9g7I_5yPHdD-DE8NLRXilHiVWwphntUevv9B01Y4QFyHukaXaSN9godUTcw93HeLPWeohjeI8WHD66sutWM-RDwtZshxiIUvjuvQYoJaj9CmMiK9UAT84JnkeEIS9c9hwGjOYEAoQqKuOm-CawDeiF3eYThDiy0ERN9RDDKaeKXFFYBzTAmBYNEucHd4aDModOLjQQqNQpYvDdCMpiFX4ntD98SHSH1xCgc7SHghVu9ECN_3M402QKmKyK-Q-w106kgX_4o5UTGtcaEGYNN0y2p8MBCWYNlcR1pvp7kTPrUN8BkL0BiLtEtRvCE85-YZgpdMZSH-OUaKcQ3A55Y0lOf1Zq0zxhGdNZoBLfuAwfxE5D0ZWmXr-793VIvGfh3YCd5SP7LHNrrBfvPeDIHMkgykBdf2lOTdK20q72aPQxmHoV8JQVLEhMp8_SVC4LgR7srRIYEgh99nONN7RTTP3XI1Vm6DHHGAH9iqntRxW5Ffx8A7dUwx_3m-YGhMa0P-nwEj6mYLACjLNyXyTGqcflj9pK57NRj5qDMWhTFr9SzGFl9LVCHVfGVG_32pJMyC4N5JEAmq4pGFbA6Wckza7DERrk5A2LljjxCx34NN4yVUPSCKBltek0znQOL-cCcqkbkGk7DwVnLAFSybj0CJEPj30qYqX0To5cnQJEPiQrH4X0pr3RvWA96n5VD8bAexFwBkCOiGEAQIFNCuUMxH1uXq2ihnLqIS1RjwNnnTlXGk-NBFUYxbZMG5AmI2E6A-jcZczouUfdqYTK-BBrGkuCtF_UhmktM61zjk-gcQ0oGAcENetoTIpWGQCngVr_7UoRDHyL8MtXYCZuvZZ7r52n5_ann3HgKF82HnWgkJeBHFzlY19VdY_NnBaiO1dNhsqbkAhdc-BdlOzWLdkhBJv19HQ7j_9zJS8rowec4tNiNbVci49AkZ1OscKzCAik1VJBYhVDhIif7GEEZiaTiBktNe0LZiBO7RkPFvqqGv3f4-O7isgvrj3Ge7ok5oAu-vPxNnYDDIdROvywAFbx5WpLIfjFXYSv3B3BNL0wqYT3ypeL3nCFRvuvc9vkdNUg64DpHMnhJhoGZzerfziYuqL3zB9Aw_5JwxhyG6BvJObn_PSO8G5umDSwYUDhI_5q1okpAoRtT-DIQCyTPbO7LESWbtGBJeK9ERue9eOsgYLJcJ3-Dxz0EwMQ0I_AUkduZNqlC3EbRGflL-XCVW5tI9P-GihDcnfqON-m5JoIrYeNQxnDldhT9xnO_wzwwQlhnHasckRDRTYbFqqDkOZCR.lQuWqe5prmLvvVdz2g7M_Q%22%7D; id_token=eyJraWQiOiIxZVQySkNHWGdmRStSSis0bW5YYnNcLzVXU2NPU0hyM2NYV1pmWWpmeHhFST0iLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiSWRvSmRVTzh4aFhtR09GYVJTMUxoZyIsInN1YiI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tXC91cy13ZXN0LTJfNEwwWlg0YjFVIiwiY29nbml0bzp1c2VybmFtZSI6IjM5N2FkZTU0LTQwZGEtNGM5NC1hNGVmLWE3MGMzNjY4NDI2NCIsImdpdmVuX25hbWUiOiJQaWVycmUtTmljb2xhcyIsIm5vbmNlIjoiZ0NMbGN0R3ZMdFhSaDVtSVFmZ0JudGFKTVBVZmp3YnBFeXFlMlhTdURiX1k5cUJYU3FqTzM0WG0ycTQ1YUtyX0NHbEdSdG5EVXpkb3k1QTRMc18tT3hTZDQxVGlUeHRwWExFZVd4NEdTMGVMY1dBYWNaZmxVZE1LUzRpanU2alFONzNvUXFRWTNyb05TaUlJa2FMTnVXSTczUzZYblBWTmx5SnFhRkNLRTZzIiwicGljdHVyZSI6Imh0dHBzOlwvXC9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tXC9hXC9BQ2c4b2NJOHh3TTZfTE5aRjBEMnZXT1A1d1FVa3JfbzJMdEQtMG4xekkyeDBvVXB4Mm05PXM5Ni1jIiwiYXVkIjoiN3B1NDh2OGkybjI1dDR2aGVzMGVkY2szMWMiLCJpZGVudGl0aWVzIjpbeyJ1c2VySWQiOiIxMTM3MDQ1MTA3NTc1MDkzMzI2NzYiLCJwcm92aWRlck5hbWUiOiJHb29nbGUiLCJwcm92aWRlclR5cGUiOiJHb29nbGUiLCJpc3N1ZXIiOm51bGwsInByaW1hcnkiOiJmYWxzZSIsImRhdGVDcmVhdGVkIjoiMTY4MjI4NjUzOTk0NiJ9XSwidG9rZW5fdXNlIjoiaWQiLCJjdXN0b206c2lnbnVwX2RhdGUiOiIyMDIyLTA4LTI1IDIxOjQxOjI3IFVUQyIsImN1c3RvbTpydF9pZCI6Ijk3OTUzMTgwNSIsImF1dGhfdGltZSI6MTY5NjkzODE1OCwiZXhwIjoxNjk2OTQxNzU4LCJpYXQiOjE2OTY5MzgxNTksImZhbWlseV9uYW1lIjoiWmluc291IiwiZW1haWwiOiJwbnppbnNvdUBnbWFpbC5jb20iLCJjdXN0b206Y291bnRyeV9jb2RlIjoiRlIifQ.Ko57lSZw6j-Tn6BVBgNe4kDPt4Mi9RiP_nHz89W-tuTXaxPToe-Bq5a2AlNhcq__8vgVw_TFu2YGu_cza5DB_cOuKCPlgmFf-qYKuC2liNPntysL-WlhnWnIjbtL8kDSKrrVogIiItCL7kUqQWm9G0Udcp_coYSszQaSJEJ0gAyTiSxoltjLUG4m9Xyu85Fy1hBaedJOfv4X00ri9SHjRSH4YkCZTfJS_zU57AF0_VlhsmcnNKvphQOtlzW1MFzNgoqm03YJFaCBtNR_XhQafvPD6Z6LVmVf-F1OB8MmfmQ8NtVFMv3D4IR-ilcqMYFQK4P-n9xyg0BmGF5Vfesf5A; __gads=ID=8470b7da7dccffd6:T=1685357858:RT=1696938169:S=ALNI_MaIS1BGNNFE5SptaGCaPIMuy1s0pA; __gpi=UID=00000c37fa5c1f07:T=1685357858:RT=1696938169:S=ALNI_MbL9f0TevXFwhoQ8GJ6U1K5yQjttw; OptanonConsent=isIABGlobal=false&datestamp=Tue+Oct+10+2023+13%3A42%3A52+GMT%2B0200+(heure+d%E2%80%99%C3%A9t%C3%A9+d%E2%80%99Europe+centrale)&version=202209.1.0&hosts=&consentId=ba3cb9e3-5428-4215-a146-d4ce4c559d01&interactionCount=2&landingPath=NotLandingPage&groups=dummy%3A1%2CFOOF%3A1%2C1%3A1%2C6%3A1%2C4%3A1%2CSTACK8%3A1%2C7%3A1%2CSTACK16%3A1&AwaitingReconsent=false&geolocation=FR%3B; mbox=PC#76a5e2e3ab3244e6b2b24fc12170c500.37_0#1760182973|session#da3097cfdf13449e8da7190776d7eaf6#1696940033; s_sq=%5B%5BB%5D%5D; _chartbeat2=.1647722719285.1696938172646.0000000000000001.CvXuu3B05nI6CiyphIBTtUNEDgErJg.7; sailthru_pageviews=6; mps_uuid=64807ddb-ad8f-4d20-b35e-60816e62111b; _awl=2.1696938173.5-9ff33f73f7bbc06bff083af0e86cc658-6763652d6575726f70652d7765737431-7; bm_sv=F3D95187AF75C9CB3940B340BAF3D093YAAQyONIF1G6iPmKAQAAC6NlGRVjD6+hh4gsBlrLmAg5gFyGez8iBWLbmR8FQr7fAnyaFX4HQ1pA11gU/CRYR8iMFqmzRSR4dJP/TdX/uZyTTj4oMlDVElwmV6O+2tsKMscBvC1eWXv7ROShtlFrdMtVcwiJf2KMwPMeHa9Qmd0t7/vpbMJdDfgYYaE1gk6BfmX9qcVysYLXbYoIxLomAZJchwYtrWqWO0SzS0reH7LXsn2HMk2rEH8TpDdnmRy7MAMRokZzslXJ1; QSI_HistorySession=https%3A%2F%2Fwww.rottentomatoes.com%2F1696938148963%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2Fauth%2Fstart%3Fref%3D%252F1696938149554%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2F1696938151087%7Chttps%3A%2F%2Fwww.rottentomatoes.com%2Fprofiles%2FRk6fJ6FlPIvGIe8t2QcQkTBqiAACN4iJ9HNjTdYInnCx6iogFDrFvbiZZC6vidAiRBClwcGGC9btPaILjHpVF2Vfdxh9ohZbuBqiWJSkOham~1696938173115; cto_bundle=SuNA719ZRVJLZjVKdDFmUHdEajNsQXdKbHZmQlJ1clM2cmJyeVE4d2I4SU1LN1F1OUVpTXJINlo2V2VxYVdOVGc2dVRXeEw4OXZ4NWczWXlzOWVieWxTcDFUT3Rwb3E5RU4zYWlzZmZrOVBLOHJIRWFSTTRVZjhlUkJ4TUhsJTJGTVYlMkYzWU9OemcwQzBGOUNuUXA2djg4T2tsWlRnVmhudXJhcWdDYU9aZExzTjFyTHM0JTNE' \\n' +
' -H 'if-none-match: W/"15b70-ZjZXQ/U58nfXbBRV4aSTHPTFHss"' \\n' +
' -H 'referer: https://www.rottentomatoes.com/\' \\n' +
' -H 'sec-ch-ua: "Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"' \\n' +
' -H 'sec-ch-ua-mobile: ?0' \\n' +
' -H 'sec-ch-ua-platform: "macOS"' \\n' +
' -H 'sec-fetch-dest: document' \\n' +
' -H 'sec-fetch-mode: navigate' \\n' +
' -H 'sec-fetch-site: same-origin' \\n' +
' -H 'sec-fetch-user: ?1' \\n' +
' -H 'upgrade-insecure-requests: 1' \\n' +
' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36' \\n' +
' --compressed'

Thanks you ;)

No profile visibility settings on Rotten Tomatoes

Hi. I'm getting a 401 unauthorised error and I think it's because I can't find anywhere on Rotten Tomatoes where I can edit my profile visibility. Have they removed that setting from the privacy settings page? If so anyway around this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.