twindle-co / twindle

Twindle - an open source project for beginners. Converting twitter threads to pdf, epub, and mobi format to be read by Kindle.
https://www.twindle.co
MIT License
134 stars 133 forks source link

Twindle daily call #583

Closed Proful closed 4 years ago

Proful commented 4 years ago

3rd November

Task1

a couple of observation here like that

the image i think

is not yet done like for example that

image if it is appearing in the pdf file

it will be good enough

but the new line character other thing

is already addressed

Task 2

and i don't think we need to have two

time profile image repeating

Task 3 Initial page design

or we have to come up with some kind of

initial the first page should be like

the initial page like which will give

some information about twindle you know

maybe between the logo or

created by twindell if you don't have

logos that is fine and when we generated

this and when the thread is created it's

some kind of information

with some photo by danielle and we can

try to fetch some information

from his profile which will give more

information about the

author and then from second page onwards

we can

come up with thread like this thread and

you know that kind of for direction we

can go

and

Task 4 Page number in pdf

we may have no page number kind of

Task 5 type of pdf

this pdf also needs to be like a5 or a6

which can be rendered well into

kindle well but it is looking good we

are doing good progress

so

Task 6 Run code

so i i encourage everyone to run this

code and

try to execute it i'm

pulling this letter since just now a few

minutes back i let us say and so it is

working

and error handling also a little bit

improve a peru but there are certain

other

ways it needs to be improved that is one

part we are doing some good progress

and about the issue right like kenny i

was trying to clean up the issue a

little bit because

having so many issues right i'm not

seeing some traction in terms of for

uh people to work so we'll try to keep

this

isolated bit clean from now onwards

you can tell your opinion but so that it

will be actionable you know

and there are because the twitter cli i

am little bit uh

involved so that uh i'm

talking to people and giving some

direction and i had a discussion with uh

busy today i'll once i stop talking let

him

explain about his observation and i puro

also can speak

so to tell twindle cli we are doing some

good progress

and i encourage everyone to run the code

and i just

sorry mirai close couple of tickets of

you

like the for example we can't make some

generic tickets it would be very

difficult for beginner or some new

anybody want to contribute the ticket

would be like i will give you an example

you can just put more information for

example

windows cli unnecessary console log

what do i mean by bit i running this

code

so this is one example i should have

copied this code into a little bit

more in the text format so it will be

easy for copy but anyway

so i am getting this console.log so i

don't want it to be printed

into the console.log i think so i take

into the twindle code developer

so that's about testing remove soon so

this kind of for you know

whichever issue you're facing uh if you

try to create a

issue which is targeted and clean and

have like

one small

task would have small objective instead

of having broad objective like

the recording standard and you know

error handling so it is a little bit

broad for example

one more error handling taking initially

i thought this is not working

but it is one of my thread only but i

realized later that i deleted the thread

because i don't want to

display that type of meeting information

in public so that the random people will

join and it will create some noise

so i deleted that to it but the error

message is

it seeing your tweets is saved to pdf

file

there is a scope for improvement here

once the tweet is unavailable we should

not go to

pdf generation and also we should have

some proper error message here like

the tweet id is not available or please

provide a valid id or something like

that

this is what i documented in my first pr

because i was not handling any other

error scenarios at all in the code so

i wanted to experiment with different

error scenarios and then come up with

specific things

of how to handle each of them and i had

documented it in my pr

uh in my pull request and you said

create issues so that's the reason who

created a broad issue but now that we

are facing

specific issues we can create specific

issues yeah you have done

correctly only but because we are

changing the direction

again and again yeah now we and yeah now

the broad

issue doesn't make sense because now we

are facing specific issues but best to

go with specific

tickets yeah yeah so initially you have

done good and you know peru also come up

with some solutions so it is good

but the more actionable item issues

going forward will help people to pick

it up and address that issue you know

in a quick so people will also feel

comfortable what do you think mira

yeah sounds good definitely

yeah and also we'll try to keep this uh

sorry for don't feel bad because you are

putting lots of effort in creating these

issues

but if you are not getting traction for

three four five days right i am not uh

thinking that it should be present here

because

that's not an issue i mean the reason i

created it was to document that

these things have not been handled

that's it not only i close your issue i

close melisa

like kenny even my all

my whatever i put here i just

closed it yeah

so my purpose was just to document it so

even if you go ahead and close it we can

still address them specifically yeah

what i'm trying to say right i closed my

history when

i don't need to feel bad okay i'm trying

to

come up with some approach where we can

engage more and we can

get some more you know contribution from

people

so that uh it should be easy for them to

address one issue at a time this i'm

thinking we it will evolve

because i was the reason i was thinking

right this issue will be

broad and three page red people will be

have trouble to

pick on what ticket

and they can't spend lots of time energy

into going through all the tickets and

contributing and you know if let's say

we have a crisp clear now we have

our clear objective we have to make this

dwindle cli working

and we have done good progress we have

to make it stabilize and improve it

right

so that's the objective of it yeah and i

need some assistance

in terms of people like basu

sora joel and uh

and for example sarath but because those

people are little bit occupied

looks like so melissa or somebody who

are interested to

on this html css right if you can create

some clearly well defined task

by going through this landing page thing

and coordinate and clear some

small tasks for example change the

however ms and something

which can be because i see there is a

little bit disconnect happening

because somebody want to work for

example

see this can go the approach or his

approach

he come up with a banner design but

which is not aligned to our figma and

so i have to reject the pull request

because as for the ticket it is saying

that enhance the banner design

but it is not very clear that what is

our objective is

the first one and fourth task is very

clearly

explained we can able to take the action

but i need some more

uh actionable item for the landing page

but it is again a second priority but uh

you know windows cli we can keep on

working and

add some more feature so

that's about it like it is open for the

discussion now

a couple things i would like to add um

in terms of the

issues and how beginners might be able

to better contribute

i think we could

um what do you say so even if say i know

how to fix something

i could document how to do the fix for

example you know change

certain line of code in certain line

of this file and i could document that

as the issue

and let someone who's a beginner pick it

up and just make the change so that they

will also be

uh able to see okay why this change is

needed and what change you know relates

to

um what kind of an output in terms of

how the code works

so that could be one one uh there is one

point that i want to say

uh another point i want to add is for

the twin cli part

right now we have the twitter api

what do you say that apa token is

required for anyone who wants to run it

right

so then if we have any uh work that is

related to the rendering part

uh people are not able to work on it or

just correct me if i'm wrong

so there should be an option in the cli

which will

uh like switch over to the mob json

rather than

hitting the actual twitter api so that

people anyone can jump in and help out

with the rendering side of uh

kind of issues yeah i think you touch

this point

very important i was i forgot to bring

this point into

notice but this is exactly i was

thinking to today talk about it

but for this second item can you create

a clear issue and explain what needs to

be done

yeah i'll do that yeah yeah

i think you want to add something else

just just the last point is that maybe

uh what mira is doing in terms of

creating broad issues is also fine

but we would need to identify each of

the separate tasks as separate issues

which is kind of like a master issue

pointing to multiple smaller issues

if that is also a fine way of looking at

it so that each person can

pick up a single specific task which is

outlined clearly for them

yeah yeah that is so

improvement will slowly uh experiment

with different different ideas

kenny

yeah that sounds good yeah just want to

share this yeah yeah yeah

because i'm also not sure what is the

optimal way to work on issues

let's experiment with uh but i was uh

initially a couple of weeks back i was

uh the israelite is growing so much

we have doc you put lots of effort into

because i

i really appreciate and respect your

intention

you want to help others right to pick

that us and help other people that that

is intention i

i don't have any doubt on that we are

still going to do that

but at the same time we are if you

overbought the information

if you see some beginner so now like

they have to read less

less rate means good action item for

them

because we have like 20 people like

corty member

it is good enough like we can achieve

our milestone objective if you have this

core team member actively participating

right

and i want to add a point to like what

we can do to improve the

issue is we can outline the uh

tasks like how they can approach it uh

not in in a very informative

manner but uh just bullet points like

you can do this and this is how you can

approach it and

then they will uh work on it i

think yeah very good idea yeah but can

you do that

can you create one issue and see the

lead

leading by example right will work

better okay

so if you have some idea i really

appreciate this idea and it will be

helpful but you have to give it a try

okay okay so i will try to create an

issue

if i found something which is like

beginner friendly and

yeah really beginner friendly also like

you create

the issues you will focus on twindle cli

objective this is everything is beginner

friendly only

for example okay okay this is removing

the console logo anything anybody can

do that they have to just find out where

this console is printing and just

raise a pool equation and it will be

merged

okay so i will create an issue

uh where i will uh but don't

forget the namesake will try to avoid

creating the issues just for some

beginner will be

benefited or something better not to go

into that route

that this route is uh not very

motivating or encouraging

we'll try to like we have in our

website i think i have checked uh

for example you know the pdf is working

rendering this way that way

our image is not coming this is not

coming that is not coming emoji is not

coming

clearly highlight that issue and put it

instead of beginner friendly

instead of that may be low level that

may be high level that may be any level

so it is up to beginners to pick that we

can do leveling like it is good

first use or something if you are want

to do that

but i think we this intention is create

clear that we are mostly the beginner

people only

we have not having very much experience

guys a few mix of people but

as you that intense and we made it clear

all our issues are anybody can pick it

up

yeah okay

hello

[Music]

there is a problem they are saying said

that

that module is not found so

so then at that model i installed it and

then run it

uh then i executed it so that

that is also a problem

yeah no problem creativity is that

create issue for that which is the

problem if yes

but once you then you approach somebody

you know yeah yeah i approached uh kenny

and

meera uh they told me how to execute

another comment right put the solution

and close the ticket close the issue by

yourself

so that it will be available because we

have closed ticket also we can search it

here

if somebody else has you right this can

be act as a stack overflow and some

beginner can that be very helpful

whenever you face problem right fasting

you create a issue

then approach other people by

discord or twitter whichever you're

comfortable you would

get the help and resolve it once you

resolve it here it is your

responsibility to document it don't

let that ticket open

okay then close that ticket also because

no need to keep open

okay yeah thank you

uh i wanna uh yeah

i wanna say one thing like right now we

have these two projects going on

dwindle web uh which is a ui part

and this twindle cli but um i

i think we need a third one and third

one is not exactly a new one

it's like he uh it's basically mostly it

will be twindle

c cli uh the problem right now with

twindel cli

is that well it's not exactly a problem

but the code is not

agnostic exactly like so of what i'm

thinking we need to create a

core code which will which are like just

like just functional code like it will

take in arguments and return data

because uh because that's what we are

going to need

for the web version uh for when the web

version makes request to the

serverless endpoint so i think we need

some refactorings

and and another benefit of those

refactoring would be that

um it would be easier it would be

actually possible to

test using jest or other frameworks

uh sorry i didn't get it can you repeat

it again

i'm saying right now we have two

projects twindle cli and twindle web

now now waves just to put it simple

right

we we won't discuss about phase two at

this moment

window cli would be our server it will

be

mature to the server level we will use

that code base in future okay

so twinkle wave is just a landing page

starting page

it will have just email capturing box

nothing else

no no uh and uh okay no i'm i'm thinking

about 2012 as in later that

let us not discuss now because it will

confuse people

we won't achieve anything right let it

make our

base product stable and uh robust

then we'll uh discard refactoring is

very easy pro

i can create any folder organize it

called move the core io i'm doing very

frequently on that

i'll take care of that okay

um i'm just saying that we need to um

that we need to decouple

the uh the functions the api we have

written

from node

actually i am working in aws full time

that is my core strength

so i'll take care of that don't worry

about that is very easy piece i am

saying that that is not a very big

challenging task we can do when we want

to do

okay but okay just wanted to add i mean

i i understand where you're coming from

and uh we can you know if we were all

experts and doing this

like as part of our work then definitely

we could you know we're all on the same

page we understand what each other is

saying why we need to have a core module

that is separate from the actual

uh web and the cli um but at least in

this case

we have started out with the whatever

structure that we have right now

and now breaking that apart would make

it a bit more confusing for

uh whoever is uh like contributing to us

so far

who is more of a beginner than uh you

know more of

experienced person like uh us

so it would be um and uh in terms of the

code base there is

really not much code here so it is not

that big of a pain to refactor later

uh split it later so um

i'm also in agreement with uh profile

but

your thought is definitely a valid

thought

i think i understand why guru is saying

that because

when you go handle the error scenarios

there is no way for us to

like for the error process to return a

false or something

to make sure that the pdf process

doesn't start

so like say for example the the the

processes are right now

completely coupled so maybe that's why

he's

pressing on the refactoring part but we

will need to work up

work on some other mechanism like maybe

write another file and then call the two

processes together

rather than doing it from index.js i

hope i'm making sense

so there there is some issue with the

error handling scenario like when there

is an error happening

the pdf is still being generated at

least that message is still being

generated at the bottom so

the the code is tightly coupled right

now is is that what you're saying

exactly that so i'll

think of some way try it i mean we can

come up with some other we don't have to

entirely refactor the code we can come

up with

some intermediary file where we can do

the whole thing so

we don't have to create a separate code

base for that

yeah that sounds good you can create

multiple uh javascript files like

modules and then

yeah so just basically separate the two

logic right now

it's tightly coupled the the place where

we are calling the twitter api

and the pdf generation it's tightly

coupled because stolga has

fixed it that way so maybe that's what

he was talking about i wasn't sure

exactly

why he wanted us to refactor the whole

thing so maybe can we could create

another file

and we will talk about that little bit

okay

yeah well it won't be exactly very hard

all we we need to do is just

return things rather than right now we

are just writing to a global variable

now we need to return so we need to

return yeah because previously i wrote

the module in isolation so i i

chose that approach but uh because we

are returning things now

so it it makes better sense to refactor

that part a little bit

so we can work on that yeah okay

yeah sorry like i misunderstood that is

a very good you

you're free to refactor any way you like

you know but creating

multiple project that is on my

resistance is but

are free to improve the code and you

discuss with meria and come up with some

solution whatever you both agree that's

an approach and we can come up with the

best way to do this part

merge it okay also profile i

look when shaker was working on the epub

module i looked at the code there

so basically they have a html module in

the data and that html module is being

rendered inside the epub file

so that html file currently in the epub

module is hard coded

we could use the same hbs template

format that tolga is using in the pdf to

generate that html portion

so basically we need to find a way to

reuse that

html hbs html template

that's a good idea but i am thinking

like uh at this stage right

focusing energy ippo is not

required because we have if somebody is

not having any more tasks they can still

go and explore on that

but i want this uh pdf to be a little

bit

more formatted so that's a more priority

more priority like twitter

like we have like couple of options

because the seven days restriction

error handling and this reflecting code

and a little bit about testing also is

very important that's what i think

is explaining i today talk about him but

i won't

pass the testing to him or anybody

but testing is important in future i i'm

not sure when we will going to do that

no we we can just have a separate call

like sound about all the error scenarios

like for example the scenario that you

just described

one tweet you published and then you

deleted it so what happens in that

scenario

those kinds we just need to come up with

the various scenarios and then

handle them in in the right way

yeah now we have to encourage people to

use it

and run it so that people

may not know how to run it and also to

take any point it out right if somebody

don't have api access they should also

able to

test it out yeah make sense and also not

only the

json file you can mock the twitter api

that would be a more end-to-end similar

solution so it will test your code you

know

instead of mocking your end response

you can create some more there are lots

of approaches you can explore on that

so whichever api if let's say for

example somebody doesn't create dot env

file

and want to run in a local mod so

whichever the twitter response you are

getting right you mock that response

from twitter because

now you have the structure directly from

twitter and your

make sure your code is working because

the twitter response is not going to

change right

only our code is going to change

yes you did you understood what i'm

trying to say it is a bit complicated uh

thing if you understand it is good no

actually the twitter response structure

is there but how would we know the data

what the user is trying to get it is

very same right like

for example danny twitter and thread or

some other thread it is

very simple one structure is enough

any structure okay

but it is for we can just in cl option

we can create like it is for stop mode

or developer mode

so it is not actually some kind of

information or log

to guide them that you you don't have

this configuration so play around with

the local mode or something

okay yeah we can talk about this little

bit more yeah we'll discuss more on that

approach a little bit future

busy you want to discuss anything

no problem i just want to ask you like

uh which you showed that

uh that's what you've got if you're easy

to scraping

uh sorry

asking like uh the the pdf which you

generated

uh while you were uh speaking about peru

so is it

using the scraping or using the api api

scripting you have not you did you

committed the code

ah uh maybe after this uh call you will

be seeing that code

as a pull request okay okay then i'm

running from this swindle depository

only so it is the cold water mira tolga

and puru is working on that

okay okay

so he has finished the scraping cord

really

it's not uh i didn't finish i can't say

we can finish but we had some progress

yesterday uh

me and uh kenny has given kind of uh

a a code that actually had the main

problem solved

uh yeah maybe maybe i can i can i can

push that maybe you can see that how

that's working

but yeah it has its its issues because

they can't be

as as robust as api

because in ap we just know what we get

but here that's kind of

uh we just need to pick what we want but

again uh

it's working it's i can say that when we

when we load a page and if

the tweet twitter thread has some uh

20 tweets we can easily get the first

eight tweets in hand

but uh the next 20 tweets is kind of uh

there's an approach for that

we're also getting that but it's kind of

different thing

but yeah we are we are right now

uh i didn't get you are you using any

library for this

no no no no no library it's just uh it's

just a puppeteer there where we are

actually

we we just need that that's an essential

part it's a puppeteer for uh

scraping so that's a browser kind of

thing and then we are actually targeting

uh

those uh developments where we are

actually thinking those tweets would be

there

and we are getting from that and pushing

it to an array

wow that sounds cool

yeah but yeah as i told you it has some

set of issues too but yeah we'll see

that yeah

we'll talk about that like i said we

could leverage the api also

to get some additional details maybe i

don't know i mean if the

if the scraping part is really difficult

and if you can get get the tweet id

then we can look up additional

information from the api

get the user information directly from

the api vijay yesterday we were looking

at it right we were able to extract only

the text from the tweets

at least at uh starting out so i think

it would make sense to

get some additional structured data from

the first tweet which would include okay

who is the author and

those kind of things author's profile

picture etc

yes yes yes i think we can uh target

that the first

tweet actually uh i didn't work about

that

uh id and profile thing uh like image

but yeah

once we target that i think we can get

that information too

but as as yesterday uh kenyan we also

discussed it but regarding this

hybrid method like where we can use uh

api

also with the web scraping where we need

but

first i think we'll make this uh

approach clear

at least with some some kind of tweets

which we can get

then i think you can see that i think

mira

you also saw that tweepy thing right i

just uh updated in that

uh issue yeah uh but tweet

also has the same restriction because qb

also leverages the api they don't

work without the api right so

so i just uh used tweepy to get a 2018

tweet

you can get a tweets details that's not

an issue but the second call

to search uh with that conversation id

part that is the issue

okay so so that's pretty easy that that

happens

as long as you have the tweeted that's

why i'm saying even if you use the

scraping method

we could still leverage the api because

the api permits us to get tweet details

older tweets also as long as you have

the tweet id

but if you don't have the tweet id and

you want to get all tweets related to a

specific tweet

that goes to the search endpoint so the

searching part is restricted in

twitter i'm hoping that makes sense sure

sure sure

maybe uh maybe we can uh discuss some

more on that

after you put your pr i'll take a look

at the code and see i mean i'm not an

expert in python though so i don't know

how you've written the scripting

logic so you if you can explain it to me

then we can see where are the issues and

we can see if the api will help in

leveraging those issues

i am not at all expected right but let's

explain that code

so after uh after our discussion maybe

we can just connect lcc we can we can

just uh

bring some pieces together maybe it

could work we'll see that

all right sounds good uh what one

citizen guys

busy i already told in the meeting make

sure you record it and upload into

youtube

you use the zoom call that would be very

good like 40 minute limit free

there is a simple record button so

you can record audio and screen sharing

everything and you upload into that

as a format there is no need for doing

anything it's just uploaded the

discussion

era is it fine right yeah no issues

professors

use zoom zoom is very good just a record

button

i have i'm trying out this complicated

setup with obvious other thing which is

crap

it doesn't require you you guys to learn

it

produce obvious this zoom click the

record button talk anything

no need to be formal and upload into

youtube i think

okay busy has access mira if you need

access you just

name me your email address i will let

you into the youtube in future

if somebody else also want to be

contributed to the youtube channel

please send me your email address to my

twitter or discord anywhere you like

i'll add you as a manager or

owner or contributor to that printed

channel

okay i think any any more question or we

are good to go

i think we are good so we someone has to

start working on the

cover page that you just mentioned right

in the pdf

yeah if you understand what i mean if

you don't mind can you click create

issue and uh

if you want to work with it definitely

create an issue it's just that the html

part i'm not

an expert at it so if we can if there is

some mock-up

then yeah from there i can take it ahead

so i'll definitely create an issue

with what i understood yeah that is more

important like if you more and more

people like

understand from this call if you can

create issues it would be really helpful

for me

you know okay and others

okay so i understood what you meant with

the pdf part like so you want a cover

page where the author's details and the

date when that

sure like why you want to have like

design pairs and want to be perfect

come up with something if we don't like

again we'll improve it

i mean it looks good right now i don't

want to mess it up

no no no it is you just improve it don't

problem it is like simple

thread you just need cover page and come

up with something whatever you feel

right

it is good enough okay

then we'll again you will raise one more

ticket we will raise fix it and we'll

iterate on that you know

slowly okay sounds good

okay

you want to have any question or melissa

only about the the issues you mention it

like

um if we have some trouble or something

and we can

uh solve the issue and we should

document it

um are we gonna link that solution on

the wiki page

or on a readme file or some markdown

file

so it can be as accessible to anyone

that uh

want to walk through the solution or

want to learn about it

yeah there are a couple of thing if it

is like a detail

for example the way bzf has created you

created like an

ad detailed information so we can

put in docs and there is articles folder

so we can put all the markdown little

bit a presentable format

and in the main readme file we can link

to that

if it is worth it but if it is small

like it accepts another thing because

minor issue we don't need to worry about

too much that is

you know people can still search the

close issues

but if some information is like a little

bit more

we mature we spend lots of

energy time into come up with the

documentation then i would recommend to

put into article section or wiki

whichever you guys feel comfortable let

wiki and articles both grow we'll see

which is going more traction

okay okay thank you yeah

i also just want to add to the point

that profile was saying

so yesterday when i was discussing with

uh vichai bhaskar

i was just trying to tell them also you

know

as long as you have at least some sample

case working just push the code so that

we can have it in the

repository so at least you know we have

some code

that is somewhat working and then you

know someone else can also pitch in and

you know they can find edge cases just

like puro is doing right now

so if we didn't have the original code

then we wouldn't be finding these edge

cases so

it's not about being perfect or you know

creating the right code base

it's just about you know getting making

progress

and you know putting that progress out

there so that others can

also contribute so that that is how we

can leverage the power of open source

yeah i agree 100.

yeah thank you guys we'll meet again

tomorrow have a good day bye bye

thanks everyone bye

johnjacobkenny commented 4 years ago

lol :smiley:

tr0mbl3y commented 4 years ago

may be @proful is checking subtitles of talks :smile_cat:

johnjacobkenny commented 4 years ago

Yeah he did something!

Mira-Alf commented 4 years ago

Wow. That was the whole call?

Proful commented 4 years ago

😂

melissahuertadev commented 4 years ago

:octocat: